[英]Is there way to simplify a LINQ statement using if-else statement in c#
[英]Simplify multiple If-Else statement
我想知道是否有任何方法可以簡化以下 if-self 代碼:
if(a == null)
{
variant = 1;
} else if (a == b)
{
variant = 5;
} else if (a == c && a != d)
{
variant = 6
} else if ....
是否准備好不想使用太多,如果其他人在我的代碼,但variant
需要被分配到不同的值取決於a
。
謝謝。
在這些情況下,我更喜歡鏈式三元運算:
variant =
a == null ? 1
: a == b ? 5
: a == c && a != d ? 6
: variant; // or whatever final default value you want
一長串if - else if
語句本身並沒有錯。
由於您要求替代方案:如果將該代碼提取到單獨的方法中,則可以改用return
語句和常規if
s。 它還擺脫了冗余variant = ...
賦值,記錄您的代碼並保持您的方法簡短。
int DetermineVariant(int? a, int b, int c, int d)
{
if (a == null)
return 1;
if (a == b)
return 5;
if (a == c && a != d)
return 6;
// more conditions
}
我可能會受到批評,但如果你稍微改變一下代碼的外觀,它可能看起來不會太“長”。
if(a == null) variant = 1;
else if (a == b) variant = 5;
else if (a == c && a != d) variant = 6;
else if ....
而且您的代碼不會更難閱讀。 即使是pwilcox 版本(非常好,順便說一句),閱讀起來也比簡單的 if-else 更復雜。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.