C#Lambda - Where - 多个表达式相同的标准

Ans*_*t42 0 c# lambda expression

假设 - 派对商店希望根据其数据库中的条件选择人员.

数据库名称"BirthDays"字段:日,月,年

搜索实例的每个考虑因素都需要动态"where":

  1. Day = 12,Month = 1,Year = 1962
  2. 日= 3,月= 4,年= 1977; 日= 13,月= 4,年= 1977
  3. 日= 20,月= 8,年= 1941年; Day = 9,Month = 1,Year = 1991; 日= 19,月= 11,年= 1986; 日= 25,月= 2,年= 1956

下面显然不起作用,因为它只考虑一个搜索实例,当有3或甚至10时:

query.Where(o => o.Day == 3 && o.Month == 4 && o.Year == 1997);
Run Code Online (Sandbox Code Playgroud)

我试着看看Expression和ParameterExpression,但无法绕过它.

[注] @Luaan是目前为止最接近的一个,加上"||" 不会解决#1.

小智 5

我要发布这个并承担被投票的风险.但是,如果我没有错过这一点,你可以使用||(或)条件where:

query.Where(o => (o.Day == 12 && o.Month ==14 && o.Year == 1962) ||
                 (o.Day == 3 && o.Month == 4 && o.Year == 1977));
Run Code Online (Sandbox Code Playgroud)

注意:这不适合您列出的所有方案.只需添加更多条件,并小心使用括号将它们正确分开.