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>())