我有一个类似这样的数据列表:
Prod1: Id=1, Name="Book", Active=true
Prod2: Id=2, Name="Book", Active=false
Prod3: Id=3, Name="Book", Active=true
Prod4: Id=4, Name="Laptop", Active=true
Prod5: Id=5, Name="Laptop", Active=true
Prod6: Id=6, Name="Laptop", Active=true
我想要实现的是获取类似于以下缩减列表的功能:
Prod1: Id=4, Name="Laptop", Active=true
我需要做的是按名称选择所有产品,并返回所有true的产品。由于Book有一个false,所以不应返回Book。
我尝试了这个:
lstProducts = lstProducts
.Where(x =>
lstProducts
.All(c => c.Name == x.Name && c.Active == true))
.GroupBy(c => c.Name).Select(c => c.First())
.ToList();
但是它返回了零个结果。如果我使用
where clause where Active == true
,它会得到一个书籍产品,这不应该发生,因为所有的Active都应该是true才能得到它。