6
public class  Product
{
public string Name {set; get;}
public string Type {set; get;}
}

public class ProductType
{
public string Name{get;set}
}


var products = GetProducts();
var productTypes = GetProductTypes(); 

bool isValid = products.All(x=>x.Type == ??) // Help required

'products'内のすべての製品が製品タイプのみに属していることを確認したいと思います。

linqでこれをどのように達成できますか。どんな助けでも大歓迎です私はLINQのものに打たれましたか?ありがとう。

4

4 に答える 4

12

Distinct と Count を使用できます。

isValid = products.Select(x => x.Type).Distinct().Count() == 1;
于 2012-06-11T07:03:30.093 に答える
10

すべてのアイテムが最初のアイテムと同じタイプであるかどうかを確認できます。

bool isValid = products.All(x => x.Type == products.First().Type);
于 2012-06-11T07:03:23.003 に答える
6
var isValid = products.Select(p => p.Type).Distinct().Count() == 1;

また

var first = products.FirstOrDefault();
var isValid == (first == null) ? true : products.All(p => p.Type == first.Type);
于 2012-06-11T07:03:44.843 に答える