0

これが私がやりたいことです。

54 個のキー/値オブジェクトを持つ Dictionary があります。インデックス i のキーと値のペアをインデックス j のキーと値のペアと交換したい...

int i=1; int j=3;
Dictionary<String, int> theDeck = new Dictionary<String, int>();
theDeck.Add("zero",  0);
theDeck.Add("one",   1);
theDeck.Add("two",   2);
theDeck.Add("three", 3);
KeyValuePair<String, int> p1 = theDeck.ElementAt(i);
KeyValuePair<String, int> p2 = theDeck.ElementAt(j);
theDeck.ElementAt(i) = p2; //THIS LINE DOES NOT WORK. WHAT IS ITS ALTERNATIVE
theDeck.ElementAt(j) = p1; //THIS LINE DOES NOT WORK. WHAT IS ITS ALTERNATIVE
4

3 に答える 3

0

これを試してください。これは私にとってはうまくいきました。

最初に辞書をリストに変換し、次にスワップするオブジェクトのインデックスを見つけます。スワップ後、リストを辞書に戻します。

var list = someDictionary.ToList(); int indexA = list.FindIndex(objA=> (condition)); int indexB = list.FindIndex(objB => (condition)); list.SwapListEntries(indexA, indexB); someDictionary=list.ToDictionary(obj => obj.Key, obj => obj.Value);

于 2016-11-16T11:58:07.470 に答える
0

ミラーリング (2 つ目) 辞書を作成し、キー ソースとして使用します。処理中に 3D 辞書に結合します。

于 2013-10-03T12:08:23.620 に答える