更好地减少代码的方法

时间:2018-03-16 06:44:54

标签: 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.E = E;
}

1 个答案:

答案 0 :(得分:1)

这样的事情怎么样:

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为假时,只返回(假设这是一个无效方法)

现在,如果b为false,则不会更新item.B。将其视为字符串,即使您不更新它,它仍将为null。准确地说,根据你的旗帜更新B,C和E,然后使用" .ForEach"直接更新。

注意:根据您的数据类型和调用方法更新B,C和E,您必须重构代码