我需要在其中应满足多个记录条件的地方写一个LINQ
where子句。
例如,在Animal
表中。我有3列
编号,姓名,年龄
我需要找到名称为Animals
的所有array
。 ['Ant', 'Mouse', 'Turtle']
var aniList= db.Animals.Where(c =>
c.Name== arrAni[0] ||
c.Name== arrAni[1] ||
c.Name== arrAni[2] );
但是,以上内容是硬编码的。我需要直接将List插入where子句中,以便将其过滤掉。我怎样才能做到这一点 ?
答案 0 :(得分:4)
好吧,您可以简单地使用Linq .Contains
方法:
var aniList = db.Animals.Where(c => arrAni.Contains(c.Name));
答案 1 :(得分:0)
string[] animalNames = new string[] {"ant", "mouse", "turtle"}
var desiredAnimals = animalList
.Where(animal => animalNames.Contains(animal.Name));
换句话说:从Animals
的{{1}}集合中,仅保留animalList
在Animals
集合中的Name