if / else在两个不同的for循环中迭代同一变量

时间:2019-02-21 21:46:28

标签: c# loops if-statement

在if / else条件下是否有比以下方法更好(更简洁)的相同集合对象的迭代方法:

bool condition = DetermineConditionValue();

if(condition)
{
    foreach(var v in variables)
    {
        PerformAction(v);
    }
else
{
    foreach(var v in variables)
    {
        PerformAnotherAction(v);
    }
}

是否有更好的方法避免两次编写循环?

1 个答案:

答案 0 :(得分:9)

您可以使用Action<T>

Action<YourParameterTypeHere> actionToDo = DetermineConditionValue()
      ? PerformAction 
      : PerformAnotherAction;

foreach(var v in variables)
{
    actionToDo(v);
}