首页 > 解决方案 > 在 FindAll 函数中使用列表 -C# LinQ

问题描述

我有下面的代码行来过滤列表

items = ctx.listName.ToList().FindAll(x=>x.LocationId= locationId); //int locationId passed as parameter

现在,不是只有一个位置(locationId),有没有办法拥有多个位置并在查询中使用它们?

就像int locationId我们可以使用List<int> locations并拥有这样的东西而不是

  items = ctx.listName.ToList().FindAll(x=>x.LocationId in locations)

标签: c#entity-frameworklinq

解决方案


您可以像这样使用 LINQ Contains() 扩展方法。

C#中的Linq Contains Method 用于检查序列或集合(即数据源)是否包含指定元素。如果数据源包含指定元素,则返回 true 否则返回 false

List<int> locations= // code to get location id's here

items = ctx.listName.Where(x=>locations.Contains(x.locationId)).ToList();

推荐阅读