0

我有一个名为的对象RateQuote,它具有以下内容:

  • 姓名
  • 学期
  • 英里

例如:

rate  = new RateQuote() {
  Term = 24,
  Miles = 120000,
  Name = '24 mo. / 120000 miles'
}

rate = new RateQuote() {
  Term = 24,
  Miles = 50000,
  Name = '24 mo. / 50000 miles'
} 

rate = new RateQuote() {
  Term = 12,
  Miles = 50000,
  Name = '12 mo. / 50000 miles'
} 

这些RateQuote被添加到 RateQuote[] 对象中:

  public void AddRate(RateQuote rate)
  {
      Rates = Rates.Concat(new RateQuote[] { rate }).ToArray();
  }

在它们被添加之后.Concat,我将如何对其进行排序?如果我的代码首先添加“24 月/120000 英里”,然后添加“24 月/50,000 英里”,最后添加“12 月/50000 英里”,我希望它对其进行排序,使其成为按此顺序:

  • 12 个月 / 50000
  • 24 个月。/ 50000
  • 24 个月。/ 120000

它应该首先按月排序,然后按英里排序。我很困惑,希望得到帮助。我知道有一个.Sort我可以使用的功能,但不确定如何在这种情况下使用它。预先感谢您的所有帮助。

4

2 回答 2

9

看来您想先订购Term,然后订购Miles。然后你可以使用:

var sorted = Rates
               .OrderBy(r=> r.Term)
               .ThenBy(r=> r.Miles)
               .ToArray();
于 2013-11-04T19:07:30.603 回答
1

您可以使用 linq,例如:

var orderedRates = rates.GroupBy(rq => rq.Term)
                       .OrderBy(g => g.Key)
                       .SelectMany(g => g.OrderBy(rq => rq.Miles))
                       .ToArray();
于 2013-11-04T19:08:27.540 回答