【问题标题】:Using .Net how do I use the Sort method to sort an Array in reverse i.e. Z to A?使用 .Net 如何使用 Sort 方法对数组进行反向排序,即从 Z 到 A?
【发布时间】:2010-09-20 02:32:24
【问题描述】:

使用 .Net 如何使用 Sort 方法对数组进行反向排序,即从 Z 到 A?

【问题讨论】:

    标签: c# .net arrays sorting


    【解决方案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】:

      如果您使用与执行此操作的标准相反的不同比较器。

      或者正常排序,然后倒序...

      【讨论】:

        猜你喜欢
        • 2015-01-20
        • 2016-03-19
        • 1970-01-01
        • 1970-01-01
        • 2021-07-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多