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 条件。

有什么建议吗?

4

1 回答 1

1

您可以设置:

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

其中键是“A”、“B”、“C”等。
当您检查部分时,您只需为每个响应/键设置真/假。
然后您可以使用辅助方法将带有逗号和“和”字的字母连接起来:

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();
        }
于 2013-07-04T10:06:53.820 回答