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 に答える