2013-07-04 59 views
0


對於示例部分A,B,C和D以及一個提交按鈕來保存它們,我有一個包含多個部分的表單。當用戶點擊提交按鈕時,我的客戶需要我根據該操作顯示不同的成功消息。

1)當用戶更改A和C時,成功消息應爲「A和C已保存」。
2)當用戶更改A,C和D時,成功消息應爲「A,C和D保存」。

它就是這樣。
目前它很多if和else條件。我檢查了每個部分,用戶是否修改了它,並將bool變量設置爲true或false。並根據這些布爾變量生成成功消息。

即使它工作正常,我不喜歡整個if和else條件。所以我想要有你的想法。我怎樣才能更優雅地解決這個問題。假設將來我會添加另一部分,我不想通過所有這些if,else條件。

有什麼建議嗎?C#.NET基於表單部分生成成功消息

回答

1

您可以設置:

Dictionary<string,bool> responses = new Dictionary<string,bool>(); 

,其中鍵是 「A」, 「B」, 「C」 等
當您檢查部分,您只需設置爲true/false爲每個響應/關鍵。
那麼你可以使用輔助方法來加入信用逗號,「與」字:

static string MyJoin(Dictionary<string,bool> dict) 
     { 
      var dictTrue = dict.Where(e=>e.Value); 
      if(dictTrue.Count()==0) return string.Empty; 
      StringBuilder sb = new StringBuilder(); 
      sb.Append(string.Join(", ",dictTrue.Select(e=>e.Key).Take(dictTrue.Count()-1))); 
      sb.Append(" and "); 
      sb.Append(dictTrue.Last().Key); 
      return sb.ToString(); 
     } 
+0

感謝羅伯特,我給一個去張貼在這裏 –

+0

這工作得很好,並感謝羅伯特。但我仍然打開建議:) –