如何使用 LINQ 检查所有项是否属于同一类型
本文关键字:属于 是否 类型 何使用 LINQ 检查 | 更新日期: 2023-09-27 18:36:56
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
我想确保"产品"中的所有产品仅属于该产品类型。
如何在 linq 中实现这一点。非常感谢任何帮助,我对 LINQ 的东西感到震惊?谢谢。
您可以使用
Distinct 和 Count:
isValid = products.Select(x => x.Type).Distinct().Count() == 1;
您可以检查所有项目是否与第一个项目具有相同的类型:
bool isValid = products.All(x => x.Type == products.First().Type);
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);
如果您只想检查 LINQ 中每个元素的类型,那么 -
class A{
}
class B{
}
static void Main(string[] args)
{
ArrayList arr = new ArrayList();
arr.Add(new A());
arr.Add(new A());
arr.Add(new A());
arr.Add(new B());
arr.Add(new A());
int count= arr.ToArray().Count(x=> !x.GetType().Equals(typeof(A)));
}
上面的示例,检查数组中每个元素的类型,然后从数组中获取不属于类类型 A 的元素计数。
我希望你有同样的场景,希望这有帮助!!