Linqを使用して各グループの最初のレコードを取得する方法 質問する

Linqを使用して各グループの最初のレコードを取得する方法 質問する

以下の記録を考慮します。

   Id          F1            F2             F3 
 -------------------------------------------------
   1           Nima          1990           10
   2           Nima          1990           11
   3           Nima          2000           12
   4           John          2001           1
   5           John          2002           2 
   6           Sara          2010           4

フィールドに基づいてグループ化しF1、並べ替えてId、次のレコードに類似したグループの最初のレコードからすべてのフィールドを取得したいと考えています。

   Id          F1            F2             F3 
 -------------------------------------------------
   1           Nima          1990           10
   4           John          2001           1
   6           Sara          2010           4

linq を使用してこれを実行するにはどうすればよいですか?

ベストアンサー1

var result = input.GroupBy(x => x.F1, (key,g) => g.OrderBy(e => e.F2).First());

おすすめ記事