2012-07-28 2 views
0

가능한 중복 : 나는 이런 식으로 뭔가 할 노력하고있어
LINQ select distinct c#Linq는 별개의 쿼리

:

List<string> manufacturerFilters = new List<string>(){"Honda", "Ford", "Jaguar", "BMW"}; 
var products = (from p in context.Products 
       where p.DeletedSince.Equals(null) 
       && manufacturerFilters.Contains(p.Manufacturer.Name) 
       && p.SomeValue == 123).Distinct(**p.Manufacturer**).Take(4); 

지금이 나에게 목록을 제공 내 필터 목록에있는 4 개의 제조업체에 속한 제품 중 하나입니다. 하지만 정말로 원하는 제품은 4 개 제품으로 각 제조업체에서 1 개 있습니다. 그렇기 때문에이 쿼리를 내 쿼리에 넣었습니다. 물론 쿼리가 작동하지 않습니다.

이 쿼리는 어떻게해야합니까?

+1

[morelinq] (http://code.google.com/p/morelinq/)의 'DistinctBy'를 사용해보십시오. –

답변

0
.Distinct(**p.Manufacturer.Name**) 

p. 제조업체는 참조 유형이므로 다른 참조 번호를 사용하므로 모두 구별됩니다.이 정보가 도움이되기를 바랍니다. .Distinct (p.Manufacturer)가 작동하려면 Comparer을 지정해야합니다.