注意这个问题类似于this one,除了我没有使用linq-to-sql,所以“let”不可用。
基本上我选择了
类型... .Select(c => new SampleClass { Id = c.Location.Name, Name = c.Location.Name }).Distinct().ToList()
以前曾经工作过的
... .Select(c => c.Location.Name).Distinct().ToList()
如何对SampleClass中的一个项目进行不同的调用?
答案 0 :(得分:3)
您可以按键对项目进行分组,然后选择要用作值的组中的项目。我以FirstOrDefault
为例:
... .Select(c => new SampleClass { Id = c.Location.Name, Name = c.Location.Name })
.GroupBy(c => c.Id)
.Select(group => group.FirstOrDefault())
.ToList()
答案 1 :(得分:0)
这就是您所需要的:http://sprokhorenko.blogspot.com/2009/11/convenient-distinct.html?
这是IEnumerable的扩展,允许你为任何字段(甚至几个使用lambdas的字段)使用.Distinct(),它可以为你动态创建IEqualityComparer。