0

可能重复:
LINQ 选择不同的 c#

我正在尝试做这样的事情:

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 种。这就是为什么我把这个 Distinct 放在我的查询中,当然,这不起作用..

我应该如何做这种类型的不同查询?

4

1 回答 1

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

p.Manufacturer 是引用类型,因此它认为所有的都是不同的,因为它们有不同的引用。我希望这会有所帮助。如果您希望 .Distinct( p.Manufacturer ) 工作,那么您必须指定比较器。

于 2012-07-28T15:14:37.300 回答