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都是非常不同的条件,那么很难缩短。