我有一个字典(字符串,整数)。我需要先按整数排序字典,然后在循环中使用每个整数值。 例如,字典包含cat 2,dog 1,rat 3 ... ordered将是dog 1,cat 2,rat 3.然后我会得到第一个值,1,用它执行一些函数,得到下一个值2 ,用它执行一些功能,依此类推,直到字典结束。
到目前为止,我有:
Dim ordered = newdictionary.OrderBy(Function(x) x.Value)
ordered.Select(Function(x) x.Value)
实现这一目标的好方法是什么?
答案 0 :(得分:2)
这似乎是你真正想要的:
For Each value In newdictionary.Values.OrderBy(Function(i) i)
' do something with the value '
Next
现在您正在循环字典的有序int
值
Dictionary<TKey, TValue>.Values
Property
编辑您想要包含索引以检查下一个元素是否等于当前:
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