LINQ の単一フィールドに基づく個別のレコードの選択
LINQ でデータを操作する場合、重複レコードをフィルターで除外することが必要になる場合があります。 、一意の値のみが返されるようにします。ただし、重複した行全体を削除するのではなく、特定のフィールドまたはプロパティに基づいてこの操作を実行することが望ましい場合があります。
基本的な個別クエリ
次の LINQ クエリDistinct() メソッドを使用して重複行を削除する基本的な方法を示します。
var query = (from r in table1 orderby r.Text select r).Distinct();
このクエリは次の内容を取得します。 table1 のすべての行をテキスト フィールドで並べ替え、結果のセットから重複を削除します。
特定のフィールドで区別
しかし、目的が返すことである場合はどうなるでしょうか。 Text などの特定のフィールドに一意の値が含まれる行だけを指定しますか?これを実現するには、GroupBy() メソッドの後に Select() メソッドを使用することが 1 つのオプションです。
table1.GroupBy(x => x.Text).Select(x => x.FirstOrDefault());
このクエリでは、最初に table1 が Text フィールドによってグループ化され、一意のフィールドごとにグループが作成されます。テキスト値。次に、グループごとに、FirstOrDefault() メソッドを使用して最初の行を選択します。結果は、テキスト フィールドに個別の値が含まれる行のコレクションです。
以上がLINQ の特定のフィールドに基づいて個別のレコードを選択する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。