2012-07-28 37 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' – 2012-07-28 16:33:45

回答

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

p.Manufacturer是引用類型的,因此它採取一切爲不同的,因爲他們有不同的refernces.I希望這將有助於。如果你想.Distinct(p.Manufacturer)工作,那麼你將不得不指定比較器。