如何解决如何在字典中遍历特定范围的KeyValuePairs?
我有一本字典,里面有4个KeyValuePair项目。现在我有2个foreach循环(循环1和循环2),这是我想要实现的目标:
循环1:
使用此foreachloop循环浏览前2个项目。
循环2:
使用此foreach循环浏览项目3-4。
我不确定是否可行,因此我尝试了以下方法:
@for (int DictItem = 0; i < finalDictionary.Count; DictItem++)
{
var test = finalDictionary[i];
if(test == 1 || test == 2)
{
//First 2 items
}
if(test == 3 || test == 4)
{
//3th and 4th items
}
}
在这里,我试图通过for循环的索引获取KeyValuePair,但这不起作用。
预先感谢
解决方法
.NET中的字典(即IDictionary<TKey,TValue>
的实现)没有键/值对的任何已定义顺序。
但是,如果您的键是可排序的(并且它们实现了IComparable<TKey>
),那么您可以这样做:
Dictionary<TKey,TValue> dict = ...
List<TKey> sortedKeys = dict.Keys.OrderBy( k => k ).ToList();
foreach( TKey key in sortedKeys.Take(2) ) {
TValue value = dict[key];
Console.WriteLine( value );
}
foreach( TKey key in sortedKeys.Skip(2).Take(2) ) {
TValue value = dict[key];
Console.WriteLine( value );
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。