在操作符中使用linq查询

本文关键字:linq 查询 操作符 | 更新日期: 2023-09-27 18:05:03

我有一个项目列表(InputList)。与此同时,我有一个名单(名字)。现在我只需要InputList中名字出现在names列表中的那些项。

一个解决方案是我在Names list上做一个循环,并检查它是否存在于InputList中。

foreach (var name in names)
{
    var result = InputList.FirstOrDefault(i => i.Name == name);
    if (result != null)
        outputList.Add(result);
}

在SQL中有一个IN操作符,在这个操作符中我们提供列表和查询返回期望的结果。我可以实现相同的使用Linq吗?

在操作符中使用linq查询

您需要的内容如下:

var result = inputList.Where(x=>Names.Contains(x.Name));

上面的查询选择名称包含在Names列表中的inputList的所有元素。

Contains方法的签名是bool Contains(T item),其中T是包含在你的列表中的对象类型。如果传递给此方法的项包含在列表中,则返回true。否则,返回false。

有关Contains方法的更多文档,请查看此处