C# 从另一个ArrayList填充的ArrayList检索数据

C# 从另一个ArrayList填充的ArrayList检索数据,c#,arraylist,C#,Arraylist,我的项目中有2个ArrayList对象定义为 ArrayList final_list = new ArrayList(); ArrayList temp_list = new ArrayList(); 我需要用另一个来填充我的final_列表,所以我在其中使用final_list.Addtemp_列表进行循环,效果很好。 下面是一个关于我的final_listobject在循环后的外观的示例: 事实上,我需要在循环之后处理数据。所以我想我得做点什么 for (int i = 0; i <

我的项目中有2个ArrayList对象定义为

ArrayList final_list = new ArrayList();
ArrayList temp_list = new ArrayList();
我需要用另一个来填充我的final_列表,所以我在其中使用final_list.Addtemp_列表进行循环,效果很好。 下面是一个关于我的final_listobject在循环后的外观的示例:

事实上,我需要在循环之后处理数据。所以我想我得做点什么

for (int i = 0; i < final_list.Count; i++)
{
    for (int j = 0; j < 6 ; j++)
    {
        // Retrieving my [0,0] , [0,1], ... , [final_list.Count,5] datas
    }
}
但这不起作用。 不管怎么说,我甚至还在努力使用正确的语法,所以我已经尝试了硬编码的东西,比如final_list[0,1]或final_list[0][1]来显示示例中的10值,但它不起作用。
我怎样才能做到这一点呢?

看来你有一个收藏最终清单,里面有一些收藏。现在要处理最内部的元素。 首先,最好使用泛型集合而不是旧的ArrayList。 一般来说,处理此类场景可以这样做:

foreach( List<string> innerList in final_list)
{
     foreach( var innerMostItem in innerList)
     {
         // process the element!
     }
}
或同等地:

foreach( var innerList in final_list)
{
     foreach( var innerMostItem in innerList as List<string>)
     {
         // process the element!
     }
}
顺便说一下,C的命名约定是对变量使用camelCase

更新 上面的代码片段已更新。不是内环中的类型转换!
尽管innerList最初是一个IEnumerable,但它是作为对象类的实例从最终的_列表中检索的。你需要显式地将其强制转换到ArrayList,否则会出现异常。

使用最终列表玩家统计最终列表玩家统计实际上是最终列表,我在截屏时失败了。。。要编辑我的帖子,谢谢你的评论!请注意ArrayList上的蓝色大框,它表示:我们不建议您在新开发中使用ArrayList类。相反,我们建议您使用泛型List类。为什么要定义两次int j?您应该删除内部for循环之外的定义和赋值。temp_列表是一个字符串列表,btwArrayList使用对象存储类型-您确定可以将foreach置于innerList之上吗?只要它实现IEnumerable,使用foreach应该不会有任何问题。我承认,对象的使用迫使开发人员进行一些可以通过使用泛型避免的角色转换。然而,这个问题与foreach@rufuslth无关。您使用var的事实意味着类型将是object,并且您不能在对象上foreach。尝试将第一个变量更改为实际的列表类型,它应该可以工作。@RufusL-Aha,现在我明白你的意思了。你说得对。我忽略了innerList本身作为对象检索并需要强制转换的事实。我认为它应该是final_list中的foreachList innerList{foreachstring innerMostItem in innerList。您正在测试结果吗?我可能错了,但问题中的调试窗口中显示了这些类型。