我有一个带有2个字符串和1个double(数量)的类。

类捐赠者

  • 字符串名称
  • 字符串注释
  • 加倍

  • 现在,我已经填写了一系列捐赠者。
    如何按金额排序?

    最佳答案

    如果实现 IComparable<Donator> ,您可以这样做:

    public class Donator :IComparable<Donator>
    {
      public string name { get; set; }
      public string comment { get; set; }
      public double amount { get; set; }
    
      public int CompareTo(Donator other)
      {
         return amount.CompareTo(other.amount);
      }
    }
    

    然后,您可以根据需要调用sort,例如:
    var donors = new List<Donator>();
    //add donors
    donors.Sort();
    
    .Sort()调用您实现的用于排序的CompareTo()方法。

    还有不带IComparable<T>的lambda选项:
    var donors = new List<Donator>();
    //add donors
    donors.Sort((a, b) => a.amount.CompareTo(b.amount));
    

    关于c# - 如何对自定义类数组进行排序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2473056/

    10-11 08:21