【发布时间】:2011-01-09 07:44:54
【问题描述】:
我有一个继承自 Dictionary<string, string> 的类。在一个实例方法中,我想遍历所有KeyValuePair<string, string>。我尝试过以下操作:
foreach (KeyValuePair<string, string> pair in base)
但这失败并出现以下错误:
在此上下文中使用关键字“base”无效
如何在派生自Dictionary<string, string> 的类的实例方法中迭代KeyValuePair<string, string>?
编辑:我发现我可以做到以下几点:
var enumerator = base.GetEnumerator();
while (enumerator.MoveNext())
{
KeyValuePair<string, string> pair = enumerator.Current;
}
但是,我仍然想知道是否有办法通过foreach 循环来做到这一点。
编辑:感谢关于不要从 Dictionary<string, string> 继承的建议。我改为实现System.Collections.IEnumerable, ICollection<KeyValuePair<string, string>>, IEnumerable<KeyValuePair<string, string>>, IDictionary<string, string>。
【问题讨论】:
-
不要从 Dictionary
派生,它只会导致意想不到的错误。创建一个包装类会更有效。
标签: c# dictionary foreach