ホームページ > バックエンド開発 > C++ > LINQのGroupByおよびTolookupメソッドを使用して、特定のキーでデータをグループ化するにはどうすればよいですか?

LINQのGroupByおよびTolookupメソッドを使用して、特定のキーでデータをグループ化するにはどうすればよいですか?

Linda Hamilton
リリース: 2025-02-02 00:11:09
オリジナル
960 人が閲覧しました

How Can I Group Data by a Specific Key Using LINQ's GroupBy and ToLookup Methods?

linq:キーによるデータのグループ化GroupByおよびToLookup

LINQは、特定の基準に基づいてデータをグループ化するための効率的な方法を提供します。 これは、オブジェクトのコレクションを扱い、共通のキーに基づいて情報を集約する必要がある場合に特に便利です。

クラスで説明しましょう:Person

class Person
{
    public int PersonID { get; set; }
    public string Car { get; set; }
}
ログイン後にコピー

オブジェクトのリストを検討してください。一部の個人は複数のエントリを持っている可能性があります(たとえば、複数の車を所有している):Person

これらの人を
List<Person> persons = new List<Person>()
{
    new Person { PersonID = 1, Car = "Ferrari" },
    new Person { PersonID = 1, Car = "BMW" },
    new Person { PersonID = 2, Car = "Audi" }
};
ログイン後にコピー
でグループ化し、車をリストするには、linqの方法:

を使用します。 PersonID GroupBy

var results = persons.GroupBy(p => p.PersonID, p => p.Car);
ログイン後にコピー
です。それぞれ

は、一般的なresultsIEnumerable<IGrouping<int, string>>経由でアクセス可能)を持つグループを表し、車の弦のシーケンス(IGrouping)が含まれています。 このデータにアクセスするには:PersonID result.Key result代わりに、

辞書のような構造(
foreach (var result in results)
{
    int personID = result.Key;
    List<string> cars = result.ToList(); // Convert to List for easier access
    Console.WriteLine($"Person ID: {personID}, Cars: {string.Join(", ", cars)}");
}
ログイン後にコピー
):

を作成します ToLookup ILookup<int, string>データへのアクセスはより単純です:

var carsByPersonID = persons.ToLookup(p => p.PersonID, p => p.Car);
ログイン後にコピー

List<string> carsForPerson1 = carsByPersonID[1].ToList();
Console.WriteLine($"Cars for Person 1: {string.Join(", ", carsForPerson1)}");
ログイン後にコピー
の両方が、キーに基づいてデータをグループ化する効率的な方法を提供し、LINQのデータ操作をより合理化します。

直接の辞書のようなアクセスを提供しますが、GroupByは複雑なグループ化シナリオにより柔軟性を提供します。

以上がLINQのGroupByおよびTolookupメソッドを使用して、特定のキーでデータをグループ化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート