0

我有一个已排序的字典,其中将字符串存储为键和值。我正在使用某些条件检查每个键的值。

void sample()
{
  SortedDictionary<string, string>.KeyCollection keyColl = clrDatesSelectedSortedDict.Keys;
  foreach (string key in keyColl)
   {
     if(chckstring = key)
      value = clrDatesSelectedSortedDict[key];
   }
 }

实际上在if条件下我也想知道下一个键。如何获得下一个键值?

还有一个问题,C# 中的 sortedDictionary 是否可以使用 for 循环而不是 foreach?

请帮助我上述任何一项。提前致谢。

4

2 回答 2

0

像这样的东西怎么样

Public Sub TestLoopForeachKey()
    Dim sd As New SortedDictionary(Of String, String)
    For i = 0 To sd.Count
        Dim nextIndex As Integer = i + 1
        If nextIndex < sd.Count Then
            ' Exists another posterior key
            Dim currentKey As String = sd(i)
            Dim nextKey As String = sd(nextIndex)
        End If
    Next
End Sub
于 2013-06-14T10:36:48.390 回答
0

当然,使用 Ling 扩展 ElementAt():

void sample()
{
    SortedDictionary<String, String>.KeyCollection keyColl = clrDatesSelectedSortedDict.Keys;
    for (Int32 i = 0; i < keyColl.Count; i++)
    {
        if (chckstring == keyColl.ElementAt(i).Key)
        {
            value = clrDatesSelectedSortedDict[keyColl.ElementAt(i).Key];
            if ((i + 1) < keyColl.Count)
                nextValue = clrDatesSelectedSortedDict[keyColl.ElementAt(i + 1).key];
        }
    }
}
于 2013-06-14T10:38:53.493 回答