私は.NETの古い蜂ですが、Linqは非常に新しいです。いくつかの基本的な読書の後、私は自分のスキルをチェックすることに決めました、そして私は完全に失敗しました!どこを間違えているのかわかりません。
金額%100 == 0の間、各人の上位2つの注文を選択したいと思います。
これが私のコードです。
var crecords = new[] {
new {
Name = "XYZ",
Orders = new[]
{
new { OrderId = 1, Amount = 340 },
new { OrderId = 2, Amount = 100 },
new { OrderId = 3, Amount = 200 }
}
},
new {
Name = "ABC",
Orders = new[]
{
new { OrderId = 11, Amount = 900 },
new { OrderId = 12, Amount = 800 },
new { OrderId = 13, Amount = 700 }
}
}
};
var result = crecords
.OrderBy(record => record.Name)
.ForEach
(
person => person.Orders
.Where(order => order.Amount % 100 == 0)
.OrderByDescending(t => t.Amount)
.Take(2)
);
foreach (var record in result)
{
Console.WriteLine(record.Name);
foreach (var order in record.Orders)
{
Console.WriteLine("-->" + order.Amount.ToString());
}
}
誰かが焦点を合わせて、正しいクエリを教えてもらえますか?
前もって感謝します