2013-07-04 94 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

这工作得很好,并感谢罗伯特。但我仍然打开建议:) –