[C#] LINQ中的GroupBy,Select,Aggregate

GroupBy用于分组,组中每个元素是一个集合。
Select用于映射,把源集合转换成目标集合[=Map]。
Aggregate用于累积,将集合各元素累积成一个值。

注:
Select并不是用于过滤,FindAll才用于过滤[=Filter]。

例如:

var testList = new List<Test>
{
    new Test {Key = "0", Value = 1},
    new Test {Key = "1", Value = 2},
    new Test {Key = "0", Value = 3},
    new Test {Key = "1", Value = 4},
    new Test {Key = "0", Value = 5}
};
//LINQ 隐式表达式
(
    from i in testList
    group i by i.Key into groups
    select groups.Aggregate(0, (current, item) => current + item.Value)
)
.ToList()
.ForEach(Console.WriteLine);
//LINQ lambda表达式
testList
    .GroupBy(item => item.Key)
    .Select(items => items.Aggregate("", (current, item) => current + item.Value))
    .ToList()
    .ForEach(Console.WriteLine);
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容