我想创建一种方法,该方法将遍历键控集合。我想确保我的方法支持扩展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);
    }
}


显然它不起作用,因为我不知道哪种类型应替换循环中的问号。我不能简单地放入objectvar,因为稍后需要在循环主体中调用KeyValue属性。我要寻找的是什么类型?谢谢。

最佳答案

KeyedCollection<TKey, TItem>实现ICollection<TItem>,因此在这种情况下,您将使用:

foreach(Collection<string> item in items)


这也是var会给您的。您没有在KeyedCollection中获得键/值对-您只获得了值。

KeyedCollection是否真的不是您要使用的最合适的类型?

10-08 07:23