C# 数组列表中的泛型列表

C# 数组列表中的泛型列表,c#,arrays,list,arraylist,generic-list,C#,Arrays,List,Arraylist,Generic List,存在一个包含常规列表的数组列表。如何访问泛型列表中的变量?但是我想通过数组列表访问变量 ArrayList TheList = new ArrayList(); List<NewType>[] GenericLists = new List<NewType>[4]; GenericLists[0].Add(variable); . . . for (int i = 0; i < 4; i++)

存在一个包含常规列表的数组列表。如何访问泛型列表中的变量?但是我想通过数组列表访问变量

ArrayList TheList = new ArrayList();

List<NewType>[] GenericLists = new List<NewType>[4];

GenericLists[0].Add(variable);
       .
       . 
       .
       for (int i = 0; i < 4; i++)
            {
                TheList.Add(GenericLists[i]);
            }
ArrayList TheList=new ArrayList();
List[]GenericList=新列表[4];
常规列表[0]。添加(变量);
.
. 
.
对于(int i=0;i<4;i++)
{
添加(通用列表[i]);
}

如何通过数组列表打印变量?

您需要迭代
ArrayList
中的项目,并将每个项目强制转换为
列表
,然后您可以迭代列表中的项目并显示它们或任何您想要的内容

foreach(var list in TheList)
{
   var currentList = (List<NewType>)list;
   ...
}

一般来说,混合和匹配数组和集合是个坏主意。您有一个列表数组,而不是“数组列表”,也不是
ArrayList
。这是我项目的一部分。所以我必须混合。为什么不使用一个
列表
?这样您就不必强制转换项目。您也不应该使用
ArrayList
。总有比htat更好的解决方案。提到类型检查可能是个好主意,因为我们在这里迭代
ArrayList
,这是个好答案。但我认为有必要重申D Stanley和Bradley的观点,即如果可能的话,应该简单地更改原始代码,使其首先不使用
ArrayList
列表
在这里更合适。如果答案中有,OP可能会更认真地对待它。:)
foreach(var list in TheList.Cast<NewList>())
foreach(var list in TheList.OfType<NewList>())