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
Run Code Online (Sandbox Code Playgroud)
我想确保"产品"中的所有产品仅属于产品类型.
如何在linq中实现这一目标.任何帮助非常感谢我对LINQ的东西感到震惊?谢谢.
Joe*_*oey 12
你可以使用Distinct和Count:
isValid = products.Select(x => x.Type).Distinct().Count() == 1;
Run Code Online (Sandbox Code Playgroud)
dtb*_*dtb 10
您可以检查所有项目是否与第一个项目具有相同的类型:
bool isValid = products.All(x => x.Type == products.First().Type);
Run Code Online (Sandbox Code Playgroud)
var isValid = products.Select(p => p.Type).Distinct().Count() == 1;
Run Code Online (Sandbox Code Playgroud)
要么
var first = products.FirstOrDefault();
var isValid == (first == null) ? true : products.All(p => p.Type == first.Type);
Run Code Online (Sandbox Code Playgroud)