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));