2009-06-05 14 views
1

自分のプログラム(パスファインディングを支援するプログラム)には、開始ノードと終了ノードからなるエントリを含むリストを格納する必要があります。 "キー"(ノードはもちろん)が一意であるとは保証できないため、辞書は機能しません。このようなデータを保存する最良の方法は何ですか? 編集:私はC#と.Net 3.5を使用します。関連するデータを保存する方法

答えて

3

単純に構造体の配列を使用する方がよい場合があります。または構造体のベクトル。これにより、リスト内の一意でないノードが許可されます。ベクトルはC++の標準テンプレートですが、C#がそれをサポートしていない場合、配列は正常に動作するはずです。

0

ご希望の言語がセットをサポートしている場合は、(開始、終了)タプルのセットがお探しのものです。

+0

うーん.... .netがサポートしているかどうかを確認する必要があります。 – RCIX

+0

また、(s.e)辺をキーとして辞書を使用してセットをエミュレートすることもできます。値を無視するか、グラフの各辺に関する有用な情報を格納するために値を使用することができます。 – Arkady

+0

ダーン、.netは本当にタプルやセットをサポートしていません。しかし、アイデアをありがとう! – RCIX

1

KeyValuePairオブジェクトのリストを使用することは可能でしょうか?このような?

List<KeyValuePair<ObjectA, ObjectB>> list = new List<KeyValuePair<ObjectA, ObjectB>>(); 

私は今、私の前にVSを持っていないので、私は、私は構文100%の権利を持っているかどうかわからないんだけど、うまくいけば、このことができます。

+0

それはうまくいくかもしれませんが、3つ以上の関連アイテムを保存したい場合はどうなりますか? – RCIX

+0

その場合、リストに提供する新しいオブジェクトの実装を見なければなりません。 – jasonh

関連する問題