如何在C#中对多个if条件进行分组?

Saj*_*ran 4 c# if-statement

有更少的代码行,有没有更好的方法来做到这一点?有时FirstName或者SecondName或者ThirdName值可能null- 这段代码有效,但我想提高质量.

if (FirstName != null)
{
    txtEngageeName.Text = FirstName.ToString() ;
}
if (FirstName != null && SecondName != null)
{
    txtEngageeName.Text = FirstName.ToString() + SecondName.ToString();
}
if (FirstName != null && SecondName != null && ThirdName != null)
{
    txtEngageeName.Text = FirstName.ToString() + SecondName.ToString() + ThirdName.ToString();
}
Run Code Online (Sandbox Code Playgroud)

Ulu*_*rov 8

你可以做到简单(如果你真的不想要实体之间的空格):

txtEngageeName.Text = string.Format("{0}{1}{2}", FirstName, SecondName, ThirdName);
Run Code Online (Sandbox Code Playgroud)

Null将被格式化为空字符串.

如果你需要空间.

txtEngageeName.Text = string.Join(" ", new[] { FirstName, SecondName, ThirdName}.Where(s => s != null));
Run Code Online (Sandbox Code Playgroud)


Adi*_*dil 5

您可以使用null-coalescing运算符string在字符串为空时获取空,null并且连接空字符串不会产生任何影响.

txtEngageeName.Text =  (FirstName ?? "") + 
                       (SecondName ?? "") + 
                       (ThirdName ?? "");
Run Code Online (Sandbox Code Playgroud)

您可以使用三元?:运算符在第一个和第二个名称后添加空格(如果它们不为空).

string txtEngageeName = (FirstName == null ? "" : FirstName + " ") + 
                        (SecondName == null ? "" : SecondName + " ") + 
                        (ThirdName  ?? "");
Run Code Online (Sandbox Code Playgroud)