【发布时间】:2011-03-25 16:24:04
【问题描述】:
我正在尝试遍历一堆项目,每个项目都有一个 List 对象数组,我想将这些对象转换为数组数组。这是执行此操作的代码:
foreach (IngredientNode i in _snapshot._ingredientMap.Values)
{
for (int c = 0; c < NUM_TAGS; c++)
{
if (i.RecipesByTag[c] == null) continue;
i.RecipesByTag[c] = i.RecipesByTag[c].ToArray<RecipeNode>();
} <--- EXCEPTION
}
RecipesByTag 的静态类型为 IEnumerable<RecipeNode>[]。但是,它的动态类型是List<RecipeNode>[]。我想逐一检查并转换 RecopeNode[] 的动态类型。在调试器下,这可以工作并且 i.RecipesByTag 被转换。但是,最后一个大括号会抛出异常:
试图以与数组不兼容的类型访问元素。
我感觉正在发生某种堆栈损坏。有人可以在这里解释技术层面发生的事情吗?谢谢!
迈克
【问题讨论】: