我有一个包含int
的字典和一个Resource
类型的对象。 Resource
对象包含一个名为CreateNode()
的方法。如果我像这样写一个foreach
循环:
foreach (var resourcePair in ResourceDictionary)
{
// call CreateNode() on each Resource object in dictionary pair
}
如何在字典中的每个Resource对象上调用CreateNode()
方法?我尝试过以下内容,但编辑不喜欢它(说“无法解析符号”)。这是正确的,因为它似乎我试图在对上调用CreateNode
方法而不是对象中的CreateNode()
方法。
foreach (var resourcePair in ResourceDictionary)
{
resourcePair.CreateNode(ref xElement);
}
我无法弄清楚如何做到这一点。有人可以向正确的方向提供指针吗?
答案 0 :(得分:4)
您需要执行以下操作:
foreach (var resourcePair in ResourceDictionary.Values)
{
resourcePair.CreateNode(ref xElement);
}
您需要指定要访问的值(这是您的资源对象集合),否则您只是访问没有CreateNode方法的KeyValuePair。
答案 1 :(得分:2)
resourcePair
是您KeyValuePair<Tkey,TValue>
KeyValuePair<int,Resource>
因此您需要访问Value
属性才能调用您的方法:
foreach (var resourcePair in ResourceDictionary)
{
resourcePair.Value.CreateNode(ref xElement);
}