如果 null,如何基于 2 个字段整齐地添加到字符串

How do I add to string, neatly, based on 2 fields if null

我有一些代码可以正常工作,但看起来有点 messy/smelly。

有没有一种方法可以更简洁地执行此操作?

ViewBag.PageName = "Search Results for ";

if (searchViewModel.Code != null)  --checking Code value
     ViewBag.PageName += $"Product {searchViewModel.Code}";

if (searchViewModel.Region != null)
{
      if (searchViewModel.Code != null) --checking Code value Again!
           ViewBag.PageName += " and ";

      ViewBag.PageName += $"Region {searchViewModel.Region}";
}

您的代码没有问题。我唯一可能建议的是考虑使用 ?: operator。这是一个 "if/else" 快捷方式,它根据评估 returns 是真还是假来计算表达式和 returns 值。结合String.Concat,PageName各部分的驱动条件一目了然:

ViewBag.PageName = String.Concat("Search Results for ",
    (!String.IsNullOrWhiteSpace(searchViewModel.Code)) ? $"Product {searchViewModel.Code}" : "",
    (!String.IsNullOrWhiteSpace(searchViewModel.Code) && !String.IsNullOrWhiteSpace(searchViewModel.Region)) ? " and " : "",
    (!String.IsNullOrWhiteSpace(searchViewModel.Region)) ? $"Region {searchViewModel.Region}" : ""
)

(并向@John 推荐 IsNullOrWhiteSpace() +1)。