我有一个简单的 LINQ 查询,我想在其中实现类似 SQLin
的功能。我发现谷歌搜索Contains(string[])
是这个的替代品。
请指导我如何in
在 LINQ where 子句中使用类似的功能int
。
我有一个简单的 LINQ 查询,我想在其中实现类似 SQLin
的功能。我发现谷歌搜索Contains(string[])
是这个的替代品。
请指导我如何in
在 LINQ where 子句中使用类似的功能int
。
您仍然可以使用包含。假设您有一个产品类,例如:
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 的项目
使用 Contains(int[]) 与使用 Contains(string[]) 相同。这是一个平等问题,而不是类型问题。
为了提高性能,请尝试使用ToLookup。