0

我有一个简单的 LINQ 查询,我想在其中实现类似 SQLin的功能。我发现谷歌搜索Contains(string[])是这个的替代品。

请指导我如何in在 LINQ where 子句中使用类似的功能int

4

2 回答 2

4

您仍然可以使用包含。假设您有一个产品类,例如:

class Product
{
    public int ID { get; set; }
    public string Name { get; set; }
}

和几个元素:

  static void Main(string[] args)
        {
            int[] productList = new int[] { 1, 2, 3, 4 };
            List<Product> products = new List<Product>();
            products.Add(new Product { ID = 1, Name = "Test" });
            products.Add(new Product { ID = 2, Name = "Test" });
            products.Add(new Product { ID = 6, Name = "Test" });

然后你可以这样做:

        var myProducts = from p in products
                         where productList.Contains(p.ID)
                         select p;

这将为您提供 ID 为 1 和 2 的两个项目,而不是 ID 为 6 的项目

于 2012-07-12T10:53:40.390 回答
0

使用 Contains(int[]) 与使用 Contains(string[]) 相同。这是一个平等问题,而不是类型问题。

为了提高性能,请尝试使用ToLookup

于 2012-07-12T10:58:50.233 回答