这是KeyValuePair中foreach的任何Next函数吗?

时间:2013-01-03 05:10:24

标签: c#

这是KeyValuePair中foreach的任何Next函数吗?

foreach (KeyValuePair<string, List<class>> KPV in dic )
{  }

或唯一的解决方案是使用带计数器的传统for循环

2 个答案:

答案 0 :(得分:3)

阅读MSDN Dictionary Class

  

表示键和值的集合。

在遍历字典时,您使用的是KeyValuePair Structure,它代表一对密钥(此处为string)和值(此处为List<T>)。因此,如果打算在每对中循环List<T>,则需要访问KeyValuePair.Value Property

foreach (KeyValuePair<string, List<object>> KPV in dic)
{
    foreach (object v in KPV.Value)
    {

    }
}

此外,我将List<class>替换为List<object>,因为绝对class不是类型的可能名称。

如果每个KeyValuePair.Key Property值都不重要,您可以遍历Dictionary.Values Property

foreach (List<object> values in dic.Values)
{
    foreach (object v in values)
    {

    }
}

答案 1 :(得分:1)

KeyValuePair<TKey, TValue>个对象可以枚举,如果它们位于Dictionary<TKey, TValue>个对象中。

Dictionary内,您可以使用Dictionary.Enumerator结构,该结构公开Dictionary.Enumerator.MoveNext()方法,该方法可能是您正在寻找的“下一步”功能。

如果您能在foreach代码块中告诉我们您打算做什么,那就太好了。