📅  最后修改于: 2023-12-03 15:10:09.806000             🧑  作者: Mango
在C#中,对数组或集合按照元素长度进行降序排列可以用LINQ语句来实现。本文将分享一些实现方式,并附上代码片段。
使用OrderByDescending方法可以轻松地实现对集合元素长度的降序排列。此外,我们还可以使用Lambda表达式来指定排序规则。
var list = new List<string> { "apple", "banana", "pear", "grapefruit" };
var sortedList = list.OrderByDescending(s => s.Length).ToList();
其中,s表示集合中的每个元素,s.Length表示元素的长度。OrderByDescending方法将按照元素长度从大到小进行排序。
我们也可以使用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类来指定排序规则。