如何在LinQ中实现IN子句

时间:2010-06-21 09:12:14

标签: linq generics c#-3.0

我有两个ILIst这些对象:

    class ProductionMachineType
    {
        string code { get; set; }
        IEnumerable<string> ProductionToolsLink { get; set; }
    }

    class ProductionTools
    {
        string code { get; set; }
    }

我正在寻找一种快速的Linq方法,这使我能够查询IList<ProductionMachineType>中包含至少一个ProductionToolsLink的{​​{1}}。

在SQL中,我会这样:

ILIst<ProductionTools>

有办法做到这一点吗?

2 个答案:

答案 0 :(得分:5)

包含方法可以帮助您:

var names = new string[] { "Alex", "Colin", "Danny", "Diego" };

var matches = from person in people
        where names.Contains(person.Firstname)
        select person;

答案 1 :(得分:2)

这样做,但我无法保证它的效率......

var output = machines.Where(machine => 
     machine.ProductionToolsLink
     .Any(link => tools.Select(tool => tool.code).Contains(link)));