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或诸如此类的东西。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)