C# 查找与groupby
我想知道groupBy和ToLookup扩展方法之间有什么区别 让我们列出如下对象:C# 查找与groupby,c#,.net,linq,C#,.net,Linq,我想知道groupBy和ToLookup扩展方法之间有什么区别 让我们列出如下对象: public class Person { public uint Id { get; set; } public string Name { get; set; } public DateTime Birthday { get; set; } } List<Person> People { get; set; } 这些说法有什么区别 提前谢谢 Marco B.ToLo
public class Person
{
public uint Id { get; set; }
public string Name { get; set; }
public DateTime Birthday { get; set; }
}
List<Person> People { get; set; }
这些说法有什么区别
提前谢谢
Marco B.
ToLookup
使用立即执行,并返回一个ILookup
,允许您按键查找组
GroupBy
使用延迟执行,只按第一次遇到每个组的顺序返回组(例如,第一个组将包含源数据的第一个元素),而不知道以后可以按键查找组。每次迭代结果时,它都必须再次分组
基本上,您应该使用哪一个取决于您将如何处理结果。如果您只想对它们进行一次迭代(例如,为了进一步转换),GroupBy
通常可以。如果您想将它们作为多个操作的集合,那么ToLookup
的即时特性非常有用
定义“差异”。。。一个区别可能是“返回值”,另一个区别是具体的实现。。。精心设计!!谢谢你,先生:)
var groupedPeople = People.GroupBy((x) => x.Id);
var lookupPeople = People.ToLookup((x) => x.Id);