我有两个对象列表:new HttpMessageInvoker(server, true)
&amp; List<One>
我希望实现以下目标。
对于每个List<Two>
:
One.Id
中有匹配的ID,则不执行任何操作Two.Id
中没有匹配的ID,请执行操作我在迭代中尝试迭代,但无法找到合适的解决方案。
提前致谢。
答案 0 :(得分:2)
您可以使用LINQ的Any()方法检查是否存在匹配项:
foreach (var one in listOne) {
if (!listTwo.Any(two => two.Id == one.Id)) {
// No matches
}
}
答案 1 :(得分:2)
我会在这样的专用函数中使用Any()
:
bool HasMatches(List<One> ones, List<Two> twos)
{
foreach (var item in ones) {
if (!twos.Any(other => other.Id == item.Id))
return false;
}
return true;
}
一旦找不到当前项目的匹配项,就应该完成搜索。
答案 2 :(得分:0)
你可以做这样的事情
List<one> a = new List<one>;
List<two> b = new List<two>;
foreach( l in a)
{
if(b.Any(x=>x.id == l.id)){
//do something
}
else{
//do something
}
}
答案 3 :(得分:0)
foreach(var item1 in list1)
{
if(list2.Any(item2=>item2.Id== item1.Id))
{
//do nothing
continue;
}
// do something
}
答案 4 :(得分:0)
您可以像这样使用[{...}, {...}, {...}]
。
Contains