すべてのオブジェクトが WDataObject 型である電気計算エンジンを使用して開発しています。
文字列値で正常に機能するグラフを作成するクラスがありますが、これらの WDataObjects のグラフを作成する必要があります。
WDataObject が他の WDataObject と等しいかどうかを確認するには、独自のメソッドを使用する必要があります。.isEqual(WDataObject obj)
したがって、次のような辞書を作成すると
Dictionary<WDataObject , LinkedList<WDataObject>> map = new Dictionary<WDataObject , LinkedList<WDataObject>>( );
通常、キーから値を取得することはできません。代わりに、反復子を作成して手動で同等性を確認する必要があります。
私はうまく動作するこの機能を持っています:
public void addOneWayRelation ( string node1 , string node2 ) {
LinkedList<string> adjacent = new LinkedList<string>( );
try {
adjacent = map[node1];
} catch ( System.Collections.Generic.KeyNotFoundException ) {
map[node1] = adjacent;
}
adjacent.AddLast( node2 );
}
そして、型を文字列から WDataObject に変更する必要があります。
私はすでにキー検索を持っています
private LinkedList<WDataObject> searchKey ( WDataObject k ) {
List<WDataObject> Keys = new List<WDataObject>( map.Keys );
List<LinkedList<WDataObject>> Values = new List<LinkedList<WDataObject>>( map.Values );
for ( int i = 0 ; i < Keys.Count ; i++ ) {
if ( Keys[i].IsEqual( k ) ) {
return Values[i];
}
}
return null;
}
問題は
map[node1] = adjacent;
このコンテキストで特定のキーの値を置き換えるにはどうすればよいですか?
どんな助けでも大歓迎です。