【问题标题】:Design Question on mapping the data for the same Country codes in C#.NET在 C#.NET 中映射相同国家代码的数据的设计问题
【发布时间】:2010-12-14 01:53:34
【问题描述】:

我有来自 Active Directory 的国家/地区代码如下所示,具体取决于用户。 “US01”、“UK01”、“AUS01”。

我有另一个内部应用程序,其国家代码为“美利坚合众国”、“英国”、“澳大利亚”、“爱尔兰”。

在 UI 上,我想显示友好的国家/地区名称,因为它们来自内部应用程序。在不去数据库(另一个表)的情况下,我试图在 C#.NET 中映射这两个国家代码。

Ex: 

US01 - 美利坚合众国

UK01 - 英国

AUS01 - 澳大利亚

我想知道如何进行此映射? 感谢您的时间。

谢谢

【问题讨论】:

  • 两者之间是否有任何共同的ID?换句话说,程序如何知道 US01 等同于美国?
  • 看来你得去数据库了?你怎么知道“US01”是“美利坚合众国”的代码

标签: c# asp.net-mvc


【解决方案1】:

我认为,您需要创建一个静态字典

Dictionary<string,string> mapTwoValues = new Dictionary<string,string>();

mapTwoValues.Add("US01","United States of America");

为了使用

mapTwoValues["US01"] which gives you the value as United States of America

【讨论】:

  • 这是维护的噩梦。
  • 这并没有传达如何进行映射,而是如何存储映射。我认为这个用户想知道如何将这两个列表映射在一起。我会对此投反对票,但问题太不清楚了,我不知道这个用户想要什么。
  • 请投反对票,但如果我可以创建一个 xml 文件并将该文件读入静态字典,那它怎么会是维护的噩梦?
  • 我是我的公司所在国家的最低限度列表:字典可以工作。为了维护,我可以把这些放在资源文件中。
【解决方案2】:

如果您可以限制仅使用 ISO 国家/地区代码,您可以执行以下操作:

var regionInfo = new RegionInfo("GB");
Console.WriteLine(info.EnglishName);

输出:

United Kingdom

(请注意,“UK”不是 ISO 国家代码)。

否则,你应该去数据库。

【讨论】:

  • @Saurabh:你疯了吗?我展示了您可以使用内置功能将国家代码的国际标准转换为其全英文名称。如果用户不能限制为 ISO 国家代码并且需要使用存储在数据库中的名称,那么他应该从数据库中获取该映射。期间。
  • @Jason :我的意思是,只需创建一个 XML 文件并在其中存储映射,这样您就可以展示您想要展示的内容,说明为什么事情过于复杂并且您没有不需要的数据库表只存储 3 个值
  • @Saurabh:您的回答与我的回答是否有用无关。您表示这与您的问题和否决票无关。我的有帮助或没有帮助独立于你的。报复性的反对票并不酷。你为什么认为它是三个?世界上有200多个国家?
  • 我不假设,我正在回答问题中存在的数据和问题中没有说大约 200 或 2000 个国家?而且我不会因为你对我或其他我投反对票的朋友而对你投反对票,因为我认为你的回答没有帮助
  • 那么在你看来,一个关于世界上所有国家代码的问题应该包括所有 200 个问题?请注意,OP 说“Ex:”。
猜你喜欢
  • 2011-06-27
  • 1970-01-01
  • 2018-10-16
  • 1970-01-01
  • 1970-01-01
  • 2012-06-27
  • 2014-09-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多