仅当变量不为空时才包含

Dar*_*er5 0 c# blazor

在我的代码中,FirstName 和 LastName 总是有值,但 MiddleName 并不总是有值,所以我的问题是如何最好地创建一个连接三个变量的附加字符串,但如果 MiddleName 没有值,则不包括 MiddleName。

到目前为止,这是我的代码,但这太冗长了,我知道可以简化。

if (newContributor.MiddleName == "")
{
  newContributor.Url =
  newContributor.FirstName.Replace(" ", "-").ToLower() + "-" +
  newContributor.LastName.Replace(" ", "-").ToLower();
}
else
{
  newContributor.Url =
  newContributor.FirstName.Replace(" ", "-").ToLower() + "-" +
  newContributor.MiddleName.Replace(" ", "-").ToLower() + "-" +
  newContributor.LastName.Replace(" ", "-").ToLower();
}
Run Code Online (Sandbox Code Playgroud)

大家有什么建议?

谢谢!

Hen*_*man 5

string[] parts = { firstName, middleName, lastName };
url = string.Join('-', parts.Where(p => !string.IsNullOrWhitespace(p)))
   .ToLower()
   .Replace(' ', '-');
Run Code Online (Sandbox Code Playgroud)

您可以做出 1 条声明,但这不太可读。

此外,您可能需要处理所有其他“无效”字符

url = System.Web.HttpUtility.UrlEncode(url);
Run Code Online (Sandbox Code Playgroud)