2011-08-17 1 views
15

私は「太い一日」を持っているのかどうかわかりませんが、ここで何が最善のルートかと思っただけです。文字列のペアを格納したり、オブジェクトを作成したり、.NETでクラスを使用したりする最適な方法は何ですか?

コンテキスト:

私は、フィールドのリストを持っていると私は(私がところで、.NET 2.0を使用しています)例えば彼らとの別名を保存したいです

enter image description here

文字列のように、その本質的ペア:

REFERENCE、参考

COMMUNITY、コミュニティ

POST_CODE、郵便番号

...私はそう思っています私はStringDictionaryを作成し、その値を格納する必要があります。たとえStringDictionaryクラスの機能を使用しなくても、キー値について気にしなくてもペアの関連付けなど - 私はちょうど一対の文字列を本質的に保持したい。

どのようなヘルプ/ポインタも素晴らしいでしょう。

答えて

6

「フィールド名」が一意である場合は、汎用Dictionary<string, string>を使用できます。

そうでなければ、重複しているキーを気にしない場合はLookupクラスを使用できます。

これらのクラスのすべての機能を使用するかどうかは心配しません。私はより重要な懸念は、簡単に書くことができると思う、&コードを読みやすい。

5

何について約Tuple<string,string>?これは、ネット4.0に組み込まれ、軽量です。

+0

で見てくださいことに注意してくださいあなたが避けたい場合は、重複キーを持つのでご注意ください。 – Jayee

31

.NETの「ペア」汎用クラスはTupleです。あなたは好きで、それを使用します。

var strings=new List<Tuple<string, string>>(); 
strings.Add(Tuple.Create("REFERENCE", "Ref")); 

一番左の列(すなわちキー)一意である場合、辞書は完全に受け入れ代替です。それ以外の場合はエラーが発生します。

組み込みのコレクションを使用するか、実際のオブジェクトを作成する方が良いかどうかは、必要に応じて決まります(後ほど列を追加しますか?辞書アプローチではできません)。あなたはそれを使用します(コアタイプの場合は、ドメインモデルを作成する必要があります)。

編集:辞書の組み込み機能を使用しないというのは、そうではありません。バイナリ検索アルゴリズムと稲妻高速ルックアップのための内部ツリー構築。 Tupleまたは自分のタイプのリストはこれを持たない可能性が高く、リニア検索に戻ります。文字列のペアが交互に私の意見ではNameValueCollection

2

ので、2つの文字列を格納するためのカスタム構造を使用することをお勧めし:System.Collections.Generic.DictionarySystem.Collections.Specialized.NameValueCollectionは、それらの中に文字列を追加する方法Addを必要とする - それは、追加のラインですコードの クラスSystem.TupleにはReadOnlyプロパティしかありません。これは障害になる可能性があります。シンプルな構造の

例:

public struct DoppelWert 
{ 
public string Wert1; 
public string Wert2; 
} 
3

を使用してください

+1

良い解決策と私はフィールド名が大好き – CindyH

関連する問題