如何对自定义类数组进行排序?

Kov*_*ovu 13 .net c# arrays sorting c#-2.0

我有一个2字符串和1双(数量)的类.

班捐赠者

  • 字符串名称
  • 字符串评论
  • 双倍金额

现在我已经填充了一系列捐款人.
我如何按金额排序?

Nic*_*ver 22

如果你实现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);
  }
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以根据需要调用sort,例如:

var donors = new List<Donator>();
//add donors
donors.Sort();
Run Code Online (Sandbox Code Playgroud)

.Sort()调用CompareTo()你的排序实现的方法.

还有lambda替代品没有IComparable<T>:

var donors = new List<Donator>();
//add donors
donors.Sort((a, b) => a.amount.CompareTo(b.amount));
Run Code Online (Sandbox Code Playgroud)

  • @eschneider - 对于这么简单的事情,这几乎总是有点过分.怎么会"更好"? (2认同)