0

(文字列、整数)の辞書があります。最初に辞書を整数で並べ替えてから、各整数値をループで使用する必要があります。たとえば、辞書にはcat 2、dog 1、rat 3が含まれています...順序付けられたのはdog1、cat 2、rat 3です。次に、最初の値1を取得し、それを使用していくつかの機能を実行し、次の値2を取得します。 、それを使っていくつかの機能を実行し、以下同様に辞書の最後まで実行します。

これまでのところ:

Dim ordered = newdictionary.OrderBy(Function(x) x.Value)
   ordered.Select(Function(x) x.Value)

これを達成するための良い方法は何ですか?

4

1 に答える 1

2

これはあなたが実際に望んでいるようです:

For Each value In newdictionary.Values.OrderBy(Function(i) i)
    ' do something with the value '
Next

int、辞書の順序付けられた値をループしています

Dictionary<TKey, TValue>.Values財産

次の要素が現在の要素と等しいかどうかを確認するためにインデックスを含めたいコメントに従って編集します。

Dim values = newdictionary.Values.
    Select(Function(i, index) New With {.Num = i, .Index = index}).
    OrderBy(Function(x) x.Num)
For Each value In values
    Dim nextElement = values.ElementAtOrDefault(value.Index + 1)
    If nextElement Is Nothing OrElse nextElement.Num <> value.Num Then
        ' next value is different or last element
    Else
        ' next number same 
    End If
Next
于 2013-01-06T23:17:48.453 に答える