C# 减少代码的更好方法

C# 减少代码的更好方法,c#,C#,有没有更简单的方法可以基于布尔值设置属性 if(a) { if(b) foreach(var item in items) item.B = B; else if(c) foreach(var item in items) item.C = C; /*...*/ else if(e) foreach(var item in items) item

有没有更简单的方法可以基于布尔值设置属性

if(a)
{
    if(b)
        foreach(var item in items)
            item.B = B;
    else if(c)
        foreach(var item in items)
            item.C = C;
    /*...*/
    else if(e)
        foreach(var item in items)
            item.E = E;
}

像这样的怎么样:

if (!a) return;
B = b ? "some value" : null;
C = c ? "some value" : null;
E = e ? "some value" : null;
items.ToList().ForEach(u =>
{
  u.B = B;
  u.C = C;
  u.E = E;
});
基本上,只有当a为真时才需要更新。 因此,当a为false时,只需假设这是一个void方法

现在,如果b为false,则不会更新项.b。将其视为一个字符串,即使您不更新它,它仍然是空的。准确地说,根据您的标志更新B、C和E,然后使用.ForEach直接更新它


注意:您必须重构代码,根据数据类型和调用方法更新B、C和E,您的问题不清楚。在不知道检查条件变量的情况下,进行注释是没有意义的。因此缩进似乎不合适=>误解分支结构只需使用括号。这使得对代码进行破坏性修改变得更加困难。答案是否定的。。。在你的问题中没有。我们都假设a,b,c,d是布尔型的,但是对于这个问题完全没有上下文。如果a,b,c都是非常不同的条件,那么很难缩短。