📜  按长度降序排列 C# (1)

📅  最后修改于: 2023-12-03 15:10:09.806000             🧑  作者: Mango

按长度降序排列 C#

在C#中,对数组或集合按照元素长度进行降序排列可以用LINQ语句来实现。本文将分享一些实现方式,并附上代码片段。

实现方式
1. 使用OrderByDescending方法

使用OrderByDescending方法可以轻松地实现对集合元素长度的降序排列。此外,我们还可以使用Lambda表达式来指定排序规则。

var list = new List<string> { "apple", "banana", "pear", "grapefruit" };
var sortedList = list.OrderByDescending(s => s.Length).ToList();

其中,s表示集合中的每个元素,s.Length表示元素的长度。OrderByDescending方法将按照元素长度从大到小进行排序。

2. 使用Comparer类实现排序

我们也可以使用Comparer类,指定一个自定义的排序规则。

class LengthComparer : IComparer<string>
{
    public int Compare(string x, string y)
    {
        if (x.Length < y.Length) return 1;
        if (x.Length == y.Length) return 0;
        return -1;
    }
}

var list = new List<string> { "apple", "banana", "pear", "grapefruit" };
var sortedList = list.OrderByDescending(s => s, new LengthComparer()).ToList();

上述代码片段中,我们定义了一个LengthComparer类,实现了IComparer接口,指定了一个Compare方法。在此方法中,我们将按照元素长度从大到小进行比较。然后使用OrderByDescending方法进行排序,指定了自定义的LengthComparer对象来自定义排序规则。

结论

在C#中,按照元素长度进行降序排序非常方便。我们可以使用OrderByDescending方法或Comparer类来指定排序规则。