C# 如何遍历字典中特定范围的KeyValuePairs?
我有一本字典,里面有4个KeyValuePair项。现在我有两个foreach循环(循环1和循环2),我要实现的是: 循环1: 使用此foreachloop循环前2项 循环2: 使用此foreachloop循环项目3-4 我不确定这是否可行,因此我尝试了以下方法:C# 如何遍历字典中特定范围的KeyValuePairs?,c#,loops,for-loop,foreach,iterator,C#,Loops,For Loop,Foreach,Iterator,我有一本字典,里面有4个KeyValuePair项。现在我有两个foreach循环(循环1和循环2),我要实现的是: 循环1: 使用此foreachloop循环前2项 循环2: 使用此foreachloop循环项目3-4 我不确定这是否可行,因此我尝试了以下方法: @for (int DictItem = 0; i < finalDictionary.Count; DictItem++) { var test = finalDictionary[i]; if(test == 1
@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
}
}
(int DictItem=0;iIDictionary
的实现)没有任何定义的键/值对顺序
但是,如果您的密钥是可排序的(并且它们实现了i可比较的
),则可以执行以下操作:
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 );
}
Dictionary dict=。。。
List sortedKeys=dict.Keys.OrderBy(k=>k.ToList();
foreach(将钥匙输入分拣机。取(2)){
t值=dict[键];
控制台写入线(值);
}
foreach(t键入分拣机。跳过(2)。取(2)){
t值=dict[键];
控制台写入线(值);
}
顺便说一句,字典是没有顺序的——因此存在“范围”键的想法是错误的。当然,您可以缓冲所有键,然后对它们进行排序,然后遍历其中的一个范围。您的finalDictionary
的类型是什么?它看起来像是字典,对吗?它代表什么?它是一个嵌套字典:@foreach(finalDictionary中的KeyValuePair条目)