对象的名单上有一些对象:鲜明基于任意键LINQ
class Foo {
public Guid id;
public string description;
}
var list = new List<Foo>();
list.Add(new Foo() { id = Guid.Empty, description = "empty" });
list.Add(new Foo() { id = Guid.Empty, description = "empty" });
list.Add(new Foo() { id = Guid.NewGuid(), description = "notempty" });
list.Add(new Foo() { id = Guid.NewGuid(), description = "notempty2" });
我想以这样的方式使id
域是唯一处理此列表,并扔掉非独特的对象(基于id)。
我能想出的最好的是:
list = list.GroupBy(i => i.id).Select(g=>g.First()).ToList();
是否有更好的/更好/更快捷的方式来达到同样的效果。
可能重复的[LINQ的鲜明上的特定属性(http://stackoverflow.com/问题/ 489258/linq-distinct-on-a-particular-property) – zzzzBov 2014-11-25 16:03:22
避免使用字典有很多工作要做。 :) – 2009-04-13 01:49:04
list = list.Distinct(foo => foo.id).ToList();与6行字典解决方案相比大量的工作.... – 2009-04-13 01:56:56