我有一个排序字典,它将字符串存储为键和值。 我在某些条件下检查每个密钥的值。
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?
请帮助我以上任何一项。 在此先感谢。
答案 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];
}
}
}