c# groupby的分組遍歷操作技巧有哪些

c#
小樊
171
2024-08-10 03:49:37

對(duì)于C#中的GroupBy方法,可以通過(guò)foreach循環(huán)來(lái)遍歷每個(gè)分組,并對(duì)每個(gè)分組中的元素進(jìn)行操作。以下是一些常用的分組遍歷操作技巧:

  1. 使用foreach循環(huán)遍歷每個(gè)分組,并對(duì)每個(gè)分組中的元素進(jìn)行操作:
var groups = list.GroupBy(item => item.Key);
foreach(var group in groups)
{
    Console.WriteLine($"Key: {group.Key}");
    foreach(var item in group)
    {
        Console.WriteLine($"Item: {item.Value}");
    }
}
  1. 使用LINQ方法鏈對(duì)每個(gè)分組中的元素進(jìn)行操作:
var groups = list.GroupBy(item => item.Key);
groups.ToList().ForEach(group => 
{
    Console.WriteLine($"Key: {group.Key}");
    group.ToList().ForEach(item => 
    {
        Console.WriteLine($"Item: {item.Value}");
    });
});
  1. 使用SelectMany方法將所有分組中的元素合并成一個(gè)序列,并對(duì)每個(gè)元素進(jìn)行操作:
var groups = list.GroupBy(item => item.Key);
var allItems = groups.SelectMany(group => group);
foreach(var item in allItems)
{
    Console.WriteLine($"Item: {item.Value}");
}
  1. 使用Aggregate方法對(duì)每個(gè)分組中的元素進(jìn)行累加操作:
var groups = list.GroupBy(item => item.Key);
var sum = groups.Select(group => group.Sum(item => item.Value)).Aggregate((acc, next) => acc + next);
Console.WriteLine($"Sum: {sum}");

0