使用 .Net 如何使用 Sort 方法对数组进行反向排序,即从 Z 到 A?
Posted
技术标签:
【中文标题】使用 .Net 如何使用 Sort 方法对数组进行反向排序,即从 Z 到 A?【英文标题】:Using .Net how do I use the Sort method to sort an Array in reverse i.e. Z to A? 【发布时间】:2010-09-20 02:32:24 【问题描述】:【问题讨论】:
【参考方案1】:提供适当的元素比较器。您使用什么 C# 版本? 3 让你这样做:
Array.Sort(myarray, (a, b) => b.CompareTo(a));
【讨论】:
【参考方案2】:您需要将IComparer 对象或Comparison 委托传递给排序函数。
这是来自 C# 2.0 的示例代码
Array.Sort(array,delegate(string a, string b)
return b.CompareTo(a);
);
编辑:错过了数组位。
【讨论】:
为什么不简单地返回 b.CompareTo(a)? 这里实际上有两个重要的区别:1)空字符串应该怎么办?通常在反转比较时,您不想要反转发生在 null 上的情况。只是一个想法。 2) 如果 a.CompareTo(b) 返回 int.MinValue,则返回 -a.CompareTo(b)(即预编辑)会导致问题。 我很确定大多数字符串排序算法,比如这个,如果列表中有空值,就会抛出 NullReferenceExceptions。但是,您在 #1 中提出的要点仍然适用于空字符串。【参考方案3】:如果您使用与执行此操作的标准相反的不同比较器。
或者正常排序,然后倒序...
【讨论】:
以上是关于使用 .Net 如何使用 Sort 方法对数组进行反向排序,即从 Z 到 A?的主要内容,如果未能解决你的问题,请参考以下文章
java中如何使用arrays.sort()对二维数组排序?