C# 使用列表的Linq过滤器
我需要编写一个C# 使用列表的Linq过滤器,c#,linq,C#,Linq,我需要编写一个LINQwhere子句,它应该满足多个记录的条件 例如,在Animal表中。我有三个专栏 身份证、姓名、年龄 我需要找到所有的动物,它们的名字是数组[“蚂蚁”、“鼠标”、“海龟”] var aniList= db.Animals.Where(c => c.Name== arrAni[0] || c.Name== arrAni[1] || c.Name== arrAni[2] ); 但是,上述内容是硬编码的。我需要直接将列表插入where子
LINQ
where子句,它应该满足多个记录的条件
例如,在Animal
表中。我有三个专栏
身份证、姓名、年龄
我需要找到所有的动物
,它们的名字是数组
<代码>[“蚂蚁”、“鼠标”、“海龟”]
var aniList= db.Animals.Where(c =>
c.Name== arrAni[0] ||
c.Name== arrAni[1] ||
c.Name== arrAni[2] );
但是,上述内容是硬编码的。我需要直接将列表插入where子句,以便将其过滤掉。我该怎么做 那么,您可以简单地使用Linq
。Contains
方法:
var aniList = db.Animals.Where(c => arrAni.Contains(c.Name));
使用
换句话说:从动物列表中的动物集合
,仅保留名称
在动物名称
集合中的动物
string[] animalNames = new string[] {"ant", "mouse", "turtle"}
var desiredAnimals = animalList
.Where(animal => animalNames.Contains(animal.Name));