使用linq选择不重复[重复]

使用linq选择不重复[重复],第1张

使用linq选择不重复[重复]
myList.GroupBy(test => test.id)      .Select(grp => grp.First());

编辑:为获得这个

IEnumerable<>
List<>
似乎是一个神秘的人很多,你可以简单的写:

var result = myList.GroupBy(test => test.id)        .Select(grp => grp.First())        .ToList();

但是,通常最好是使用,

IEnumerable
而不是
IList
像上面的Linq那样对它们进行延迟评估:在迭代可枚举之前,它实际上并不会完成所有工作。当您呼叫
ToList
它时,它实际上遍历了所有难以计数的部分,从而迫使所有工作都必须先完成。(如果您的枚举无限长,可能要花一点时间。)

该建议的另一面是,每次您枚举此类

IEnumerable
工作时,都必须重新进行评估。所以,你需要决定每个案例是否是更好的工作与评估懒洋洋地
IEnumerable
或将其实现为
List
Set
Dictionary
或诸如此类的东西。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5462565.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存