问题是一个SortedDictionary
确实是按键排序的。但这并不意味着您可以通过索引访问它。因此,如果您无法使用 LINQ:
Dim firstFR As KeyValuePair(Of DateTime, ScheduleItem)
For Each kv In FRs
firstFR = kv
Exit For
Next
否则你可以简单地使用First
/ FirstOrDefault
.
旁注:自从KeyValuePair(Of Tkey, TValue)
是一个结构,因此是一个值类型,它永远不是null
/Nothing
。你可以用这种丑陋的方式检查空字典:
If firstFR.Equals(New KeyValuePair(Of DateTime, ScheduleItem))
Console.WriteLine("Empty dictionary")
End If
所以使用起来更具可读性If FRs.Count = 0 Then ...
.
Update:如果您只想要给定索引处的键或值,您可以使用:
Dim firstSchedule As Date = FRs.Keys(0)
或第一个Date
in it:
Dim firstDate As ScheduleItem = FRs.Values(0)
通过这种方式,即使没有 LINQ,您实际上也可以通过索引获取两者:
Dim firstFR = new KeyValuePair(Of DateTime, ScheduleItem)(FRs.Keys(0), FRs.Values(0))