什么是一个好的集合/容器,用于基本上存储具有多个失败情况的 switch 语句的内容?我想,更准确的方法是,对于“多键单值”查找,什么是好的 C# 解决方案?我检查了 System.Collections 命名空间及其关联的命名空间,但没有发现任何特别适合多键一值的东西。
最近,我为自己编写了一个小型控制台程序来构建和验证我的 Web 应用程序所需的 XML 文件,以避免手动编写时出现的错误。但是对于最初的版本,我硬编码了一些稍微可变的元素——特别是一些用于验证的字典和一个具有大量失败选项的大型 switch 语句。虽然这将在未来几个月内有效,但最终可能需要更新这些硬编码元素,目前需要编辑源文件。为了避免这种情况,我决定将字典和 switch 语句信息存储在一个 XML 文件中(最终以可怕的递归趋势演变为编写一个程序来构建和验证这些XML 文件给我)。现在,在将其存储在文件中时,当我检索数据时,我不能像重建字典那样简单地重建 switch 语句。所以我只需要模拟一个switch语句的效果,这基本上意味着我需要几个“键”来引用同一个“值”。
switch 语句的示例片段。此方法会将特殊值输入转换为相应的 ID,主要是为了节省试图记忆值的人类记忆空间。基本上如图所示,我想要一个容器来存储所有输出单个值的几个键。
private static string DiscernRegistrationId(string str)
{
string retVal = str;
switch (str.ToLowerKey()) //shortcut extension for str.Replace(" ","").Replace(".","").ToLowerInvariant()
{
case "computerpackage":
case "comppackage":
case "cpackage":
case "computerpkg":
case "comppkg":
case "cpkg":
retVal = "0x0100C73692D109C741A1B8846141B47519C8";
break;
case "mobilepackage":
case "mobpackage":
case "mpackage":
case "mobilepkg":
case "mobpkg":
case "mpkg":
retVal = "0x010081F753F0A4A5412CB6A8E9F8CD193F58";
break;
//More cases follow
}
return retVal;
}