0

我有一个(字符串,整数)字典。我需要先按整数对字典进行排序,然后在循环中使用每个整数值。例如,字典包含 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)

有什么好方法可以做到这一点?

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 回答