在运算符中使用linq查询

时间:2014-05-26 09:46:18

标签: c# sql linq

我有一个项目列表(InputList)。除此之外,我还有一个名单(名称)。现在我只需要InputList中那些名字出现在Names列表中的项目。

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

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

SQL中有IN运算符,我们提供列表和查询返回所需的结果。我可以使用Linq实现相同的目标吗?

1 个答案:

答案 0 :(得分:7)

您想要的是以下内容:

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

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

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

有关Contains方法的进一步文档,请查看here