我正在尝试通过实践来学习 LINQ。这似乎是我应该能够使用它的情况,但我不太清楚这是否可能,或者我是否找错了树。
在给定以下用例的情况下,我可以使用单行 LINQ 查询实现方括号 [] 中的内容吗?
List<Command> list1, list2;
PopulateCommandLists(list1, list2);
foreach(Command cmd in list1)
{
if ([cmd.Name is present as the Name in any of list2's Command objects])
{
//some code.
}
}
最佳答案
试试这个:
if (list2.Any(item => item.Name == cmd.Name)) {
}
下面是声明的“剖析”:
Any
将其条件应用于list2
的每个项目,如果返回true
则返回true
列表中的任何项目Any
中的谓词测试item
的名称是否等于cmd
的名称。
您也可以将 if
折叠到 LINQ 中:
foreach (var cmd in list1.Where(c => list2.Any(item => item.Name == c.Name))) {
...
}
关于c# - 使用 LINQ 根据项目在另一个列表中的存在来过滤项目列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11248580/