我有一个包含多个部分的表单,例如A,B,C和D部分以及一个提交按钮来保存它们。当用户点击“提交”按钮时,我的客户需要我根据操作显示不同的成功消息。
1)当用户改变A和C时,成功消息应为“A和C保存”。
2)当用户改变A,C和D时,成功消息应为“A,C和D保存”。
它就是这样的。
目前很多if和else条件。我检查了每个部分,无论是否由用户修改,并将bool变量设置为true或false。并基于这些bool变量生成成功消息。
即使它工作正常,我也不喜欢整个if和else条件。所以我想要你的想法。我怎样才能更优雅地解决这个问题。让我们说将来我添加另一部分,我不想通过所有这些,如果,否则条件。
有任何建议吗?
答案 0 :(得分:1)
您可以设置:
Dictionary<string,bool> responses = new Dictionary<string,bool>();
其中键是“A”,“B”,“C”等 当您检查部分时,只需为每个响应/键设置true / false 然后你可以使用helper方法用逗号和'和'word:
连接字母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();
}