私はこのようなデータのリストを持っている:LINQを使用して全く同じ値のすべてのプロパティを取得しますか?
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
私がやろうとしています何が私が選択する必要があるということですすべての製品をその名前でグループ化し、すべての製品を真とします。 Bookは1つのfalseを持っているので、Bookを返すべきではありません。
私はこの1つ試してみた:
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のすべてが真でなければならないので、Book製品を手に入れてください。