LINQのGroup Byを使用したデータの分析


  1. グループ化とカウント: データを特定のキーでグループ化し、各グループ内の要素数をカウントする方法です。
var data = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var groupedData = data.GroupBy(x => x % 2 == 0 ? "Even" : "Odd")
                     .Select(g => new { GroupKey = g.Key, Count = g.Count() });
foreach (var group in groupedData)
{
    Console.WriteLine($"Key: {group.GroupKey}, Count: {group.Count}");
}

出力:

Key: Odd, Count: 5
Key: Even, Count: 5

上記の例では、dataリストの要素を奇数と偶数でグループ化し、各グループの要素数をカウントしています。

  1. 複数のキーでのグループ化: 複数のキーを使用してデータをグループ化する方法です。
var persons = new List<Person>
{
    new Person { Name = "Alice", Age = 25 },
    new Person { Name = "Bob", Age = 30 },
    new Person { Name = "Charlie", Age = 25 },
    new Person { Name = "David", Age = 30 }
};
var groupedPersons = persons.GroupBy(p => new { p.Age, p.Name })
                            .Select(g => new { GroupKey = g.Key, Count = g.Count() });
foreach (var group in groupedPersons)
{
    Console.WriteLine($"Age: {group.GroupKey.Age}, Name: {group.GroupKey.Name}, Count: {group.Count}");
}

出力:

Age: 25, Name: Alice, Count: 1
Age: 30, Name: Bob, Count: 1
Age: 25, Name: Charlie, Count: 1
Age: 30, Name: David, Count: 1

上記の例では、personsリストの要素を年齢と名前の組み合わせでグループ化し、各グループの要素数をカウントしています。

LINQのGroup Byを使用することで、データのグループ化や集計などの分析を簡単に行うことができます。以上のコード例を参考にして、自身のデータに応じたGroup By操作を実装してみてください。