2016-06-20 7 views
-1

データ辞書の値(i) - 値(i-1)(または隣接値の比較)を取得するにはどうすればよいですか?私はあなたが順序をしたい場合は、別のコレクションを使用する必要があります辞書
に緩んでいるフラグに他のforeach(GetEnumeratorメソッド())で述べたように同じ辞書データ辞書の隣接値を比較する方法

+1

データ辞書が配列またはインデックス付きプロパティの場合、[i] - values [i-1]は機能しません。あなたはどんなエラーを出していますか? – user2880486

答えて

1
int? lastValue = null; 
int diff; 
foreach(KeyValuePair<int, int> kvp in myDictionary) 
{ 
    if(lastVaue != null) 
     diff = kvp.value - lastValue; 
    lastValue = kvp.value; 
} 

に同じですadjecent値を必要としています。
OrderedDictionary

キーを注文している場合、私はあなたが
myDictionary.OrderBy(X => x.Key)を使用することができると思い

+1

これは反復可能な結果のためには信頼できません。ディクショナリが内部のサイズ変更を行うとき、 'foreach'は要素を並べ替えます。 –

+1

@ScottChamberlainは同意します。 OPは隣接を定義していませんでした。 – Paparazzi

3

辞書は順不同です。その中にアイテムの位置はなく、その結果、「隣接する」アイテムのようなものはありません。

1

基本的には、通常の辞書では実行しないでください。隣接関係/索引付けは、通常の辞書のコンセプトではありません。本当に何かが必要な場合は、ある種のハイブリッド配列/辞書であるOrderedDictionaryを使用してください。

関連する問題