因此,如果列表中的两个或多个布尔条件为真,我希望程序执行某些操作。使用Or运算符只会让我一个或多个,而且我不确定如何编程。
答案 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
}
现在它将只检查许多条件,直到找到两个正确的条件。