如果 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)。
我有一些代码可以正常工作,但看起来有点 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)。