如何在C#中的SortedDictionary中使用foreach查找Next键

时间:2013-06-14 10:03:54

标签: c# foreach sorteddictionary

我有一个排序字典,它将字符串存储为键和值。 我在某些条件下检查每个密钥的值。

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

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

还有一个问题,是否可以在C#中使用for循环代替foreach for sortedDictionary?

请帮助我以上任何一项。 在此先感谢。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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];
        }
    }
}