IF语句具有多个真实条件

时间:2020-01-28 10:31:24

标签: c#

因此,如果列表中的两个或多个布尔条件为真,我希望程序执行某些操作。使用Or运算符只会让我一个或多个,而且我不确定如何编程。

1 个答案:

答案 0 :(得分:5)

您可以将所有条件作为Func<bool>放入列表。然后通过LINQ的Count()方法,检查有多少条件为真。

int x,y;

List<Func<bool>> yourConditions = new List<Func<bool>>
 {
  () => x < 4,
  () => y == 5,
  () => x + y > 7,
  // and so on...
 };

if(yourConditions.Count(condition => condition.Invoke() == true) >= 2)
 {
 // whatever you want to do
 }

如果您有成百上千的条件,这可能不是很有效,因为会评估所有条件。在这种情况下,您可以使用以下内容:

if(yourCondition.Where(condition => condition.Invoke()).Skip(1).Any())
 {
 // whatever you want to do
 }

现在它将只检查许多条件,直到找到两个正确的条件。