2010-12-13 6 views
0

Active Directoryの国コードは、ユーザーによって次のようになります。 「US01」、「UK01」、「AUS01」。C#.NETで同じ国コードのデータをマッピングする際の設計質問

私は、国コードを「アメリカ」、「イギリス」、「オーストラリア」、「アイルランド」とする別の内部アプリケーションを持っています。

UIでは、社内のアプリケーションから来るようにわかりやすい国名を表示したいと考えています。データベースに行くことなく(別のテーブル用)、私はこれらの2つの国コードをC#.NETにマップしようとしています。

Ex: 

US01 - アメリカ

UK01の米国 - 英国

AUS01 - オーストラリア

私はこのマッピングを行う方法を疑問に思って? あなたの時間を感謝します。私が思う

おかげ

+0

2人で共通の共通IDはありますか?言い換えれば、どのようにUS01が米国と同等であることをプログラムが知っていますか? – StriplingWarrior

+0

あなたはデータベースに行かなければならないようですね? "US01"は "米国"のコードであると他にどのように伝えられますか – poindexter12

答えて

1

は、あなたはあなたができる、唯一のISO国コードにあなたの使用を制限することができれば静的辞書

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 
+0

これはメンテナンスの悪夢です。 – jason

+0

あなたは私にどのように表示できますか? – TalentTuner

+0

これは、マッピングの方法を伝えるのではなく、マッピングを格納する方法を伝えます。私は*このユーザーがこれらの2つのリストをどのようにマップするのだろうと思っていると思います。私はこれを落とすつもりだが、質問はとても不明である、私はこのユーザーが何を望んでいるのか分からない。 – poindexter12

0

を使用するために作成する必要があります次の手順を実行します。

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

出力:

United Kingdom 

(「UK」はISOの国コードではありません)。

そうでなければ、になるはずです。

+0

どのように役立ちますか? – TalentTuner

+0

@Saurabh:あなたは心配していますか?私は組み込みの機能を使って、国別コードの国際標準を完全な英語名に変換できることを示しています。ユーザーがISOの国コードに制限できず、データベースに格納されている名前を使用する必要がある場合、データベースからそのマッピングを取得する必要があります。期間。 – jason

+0

@ Jason:XMLファイルを作成してそこにマッピングを格納するだけで、複雑なものがなぜ3つの値を格納する不要なデータベーステーブルを持たないのかを示すことができます。 – TalentTuner