C# 根据数组中的值检查db值的最简单方法
我正在使用C#.NET循环浏览数据库中的项目,并试图根据列值是否与数组中的任何值匹配来显示不同的数据。因为我的数组可能有数百个值,如果可能的话,我不希望创建数百个不同的IF语句。有没有更简单的方法来实现这一点 下面是一些示例代码,“Items”是我的数据库数据,“Categories”是所述数据的一列:C# 根据数组中的值检查db值的最简单方法,c#,.net,C#,.net,我正在使用C#.NET循环浏览数据库中的项目,并试图根据列值是否与数组中的任何值匹配来显示不同的数据。因为我的数组可能有数百个值,如果可能的话,我不希望创建数百个不同的IF语句。有没有更简单的方法来实现这一点 下面是一些示例代码,“Items”是我的数据库数据,“Categories”是所述数据的一列: var categoryList = new List<int> { 1, 2, 3, 4 }; foreach(var item in Items){ if(item.C
var categoryList = new List<int> { 1, 2, 3, 4 };
foreach(var item in Items){
if(item.Categories.Any(x => @categoryList.Equals(x))){
<p>Yes</p>
}else{
<p>No</p>
}
}
var categoryList=新列表{1,2,3,4};
foreach(项目中的var项目){
if(item.Categories.Any(x=>@categoryList.Equals(x)){
对
}否则{
没有
}
}
我给出的答案是基于。我根据你的情况修改了密码
foreach(var item in Items)
{
bool hasCategory = categoryList.Any(x => item.Categories.Any(c => c.Id == x));
}
或对于较大的集合(性能方面):
编辑:
起初我以为item.Categories
是ID的集合,但后来我开始怀疑。如果item.Categories
只是一个整数,则以下代码将起作用:
foreach(var item in Items)
{
if(categoryList.Any(x => x == item.Categories))
<p>Yes</p>
else
<p>No</p>
}
foreach(项目中的变量项目)
{
if(categoryList.Any(x=>x==item.Categories))
对
其他的
没有
}
foreach(var item in Items)
{
if(categoryList.Any(x => x == item.Categories))
<p>Yes</p>
else
<p>No</p>
}