我想创建一种方法,该方法将遍历键控集合。我想确保我的方法支持扩展KeyedCollection<string, Collection<string>>
的任何集合的迭代
方法如下:
public void IterateCollection(KeyedCollection<string, Collection<string>> items)
{
foreach (??? item in items)
{
Console.WriteLine("Key: " + item.Key);
Console.WriteLine("Value: " + item.Value);
}
}
显然它不起作用,因为我不知道哪种类型应替换循环中的问号。我不能简单地放入
object
或var
,因为稍后需要在循环主体中调用Key
和Value
属性。我要寻找的是什么类型?谢谢。 最佳答案
KeyedCollection<TKey, TItem>
实现ICollection<TItem>
,因此在这种情况下,您将使用:
foreach(Collection<string> item in items)
这也是
var
会给您的。您没有在KeyedCollection
中获得键/值对-您只获得了值。KeyedCollection
是否真的不是您要使用的最合适的类型?