C# 使用C检查另一个列表中的值
我有一个包含112个元素的数组项目编号。我还有一个包含47个元素和项目编号的列表 现在我想检查数组中有112个元素的项目编号之一是否存在于47个元素的列表中。如果它不存在,我将采取行动 这是我的密码:C# 使用C检查另一个列表中的值,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我有一个包含112个元素的数组项目编号。我还有一个包含47个元素和项目编号的列表 现在我想检查数组中有112个元素的项目编号之一是否存在于47个元素的列表中。如果它不存在,我将采取行动 这是我的密码: for(var i = 0; i < value.Count(); i++) //Value contains 112 { //Response contains 47 elements if(!response.Any(x => x.Vo
for(var i = 0; i < value.Count(); i++) //Value contains 112
{
//Response contains 47 elements
if(!response.Any(x => x.Vo.Item_No == Int32.Parse(value[i])))
{
modelBank.Add(new ModelBank { Item_No = value[i].ToString(), Item_Type = "ART", SameAs = "", Status = "3D Missing" });
}
}
这只会在我的模型库列表中添加2个对象。我希望它添加65个对象,因为缺少65个
我想得不对吗?因为数组和列表的元素都是相同的类型,所以可以使用list.Contains方法检查是否存在
foreach(var item in value)
{
if(!response.Contains(item))
{
//Do your action
}
}
您的数据显然不是您所期望的,因为以下代码按预期工作,即它向modelBank添加了65个值:
@莱昂纳多塞西亚:例如?值和响应之间似乎存在差异,您是否剪辑了一些代码?似乎应该这样做-您确定要筛选的数据是您期望的数据吗?
int[] value = Enumerable.Range(1, 112).ToArray();
int[] response = Enumerable.Range(1, 47).ToArray();
List<int> modelBank = new List<int>();
for (var i = 0; i<value.Length; i++)
{
if (!response.Any(x => x == value[i]))
{
modelBank.Add(value[i]);
}
}
var modelBank = value.Where(x=> !response.Any(y => y.Vo.Item_No == Int32.Parse(x)).ToList();