- グループ化とカウント: データを特定のキーでグループ化し、各グループ内の要素数をカウントする方法です。
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
リストの要素を奇数と偶数でグループ化し、各グループの要素数をカウントしています。
- 複数のキーでのグループ化: 複数のキーを使用してデータをグループ化する方法です。
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操作を実装してみてください。