リストから 1 つのアイテムを取得するには、次のようにアイテムを並べてから最初のアイテムを取得します。
var result = items
.OrderByDescending(x => x.Date)
.First();
ただし、コレクションが空First
の場合は例外がスローされます。items
これは少し安全です:
var result = items
.OrderByDescending(x => x.Date)
.FirstOrDefault();
さまざまな列の最小/最大を取得するには、次のようにします。
var result =
new Item {
Id = 1,
Date = items.Min(x => x.Date),
Comment = items.Max(x => x.Comment)
};
ただし、これにはデータベースへの 2 回のトリップが必要です。これはもう少し効率的かもしれません:
var result =
(from x in items
group x by 1 into g
select new Item {
Id = 1,
Date = g.Min(g => g.Date),
Comment = g.Max(g => g.Comment)
})
.First();
または流暢な構文で:
var result = items
.GroupBy(x => 1)
.Select(g => new Item {
Id = 1,
Date = g.Min(g => g.Date),
Comment = g.Max(g => g.Comment)
})
.First();