我正在检查两个列表中的元素并尝试添加到另一个列表中:
List<ProductPacking> prodSubstitute = new List<ProductPacking>();
tempList = new Dictionary<string, string>();
List<string> prodIDList = new List<string>();
for (int count = 0; count < prodSubstitute.Count; count++)
{
foreach (string key in tempList.Keys)
{
if (!prodSubstitute.Any(i => i.id == key))
{
prodIDList.Add(prodSubstitute[count].id);
}
}
}
假设我对prodSubstitute的测试ID是1,5,4,2,3。 tempList id中的元素是1,2,3。当我通过prodSubstitute进行循环时,如果prodSubstitute不包含tempList中的id,则应该将其添加到prodIDList中。但是,使用此LINQ查询,它只是返回null而不是5,4。
任何线索?提前谢谢。
修改
if (!prodIDList.Contains(prodSubstitute[count].id) && !(lstCategory.Where(x => x.Equals(categoryName)).Select(x => x).Count() >= 2))
{
prodIDList.Add(prodSubstitute[count].id);
lstCategory.Add(categoryName);
}
答案 0 :(得分:0)
这样的事情怎么样:
var prodIDList = tempList.Keys.Except(prodSubstitute.Select(p => (string)p.id);
这应该产生tempList
中的内容与prodSubstitute
中的内容之间的差异,并将其放入字符串列表中。
注意:这应该替换您当前拥有的所有代码。