2017-10-23 6 views
0

私は完全にうまくいくいくつかのコードを持っていますが、ちょっと混乱しています。nullの場合、2つのフィールドに基づいて文字列にきれいに追加するにはどうすればいいですか?

もっとクリーンな方法でこれを行う方法はありますか?

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}"; 
} 
+1

'string.IsNullOrWhiteSpace()'の使用をお勧めします。とにかく、あなたのコードに間違いはありません。それが不器用だとあまり考えないでください。 –

+0

@JohnEphraimTugado、私はisnullorwhitespaceについて知らなかったありがとうございました – djblois

+1

あなたのコードは問題ありません。 if文には中括弧を使用するのが好きですが(私の好み:)# – berniefitz

答えて

0

コードに間違いはありません。私が提案する唯一のことは、?: operatorの使用を検討することです。これは、式を評価し、評価がtrueまたはfalseを返すかどうかに基づいて値を返す「if/else」ショートカットです。 String.Concatと結合し、そしてページ名の各部分を駆動どのような条件は明らかである:

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}" : "" 
) 

(@ジョンへと1 IsNullOrWhiteSpaceを()を示唆しているため)。

+0

ありがとうございます、 – djblois

関連する問題