我有一本字典,其中包含一个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);
}


我只是不知道如何做到这一点。有人可以提供正确方向的指针吗?

最佳答案

您需要执行以下操作:

foreach (var resourcePair in ResourceDictionary.Values)
{
    resourcePair.CreateNode(ref xElement);
}


您需要指定要访问的值(这是资源对象的集合),否则,您只是在访问没有CreateNode方法的KeyValuePair。

08-19 13:01