2011-09-18 91 views
32

我想拥有一个列表数组。 在C++中我不喜欢:c#中的列表数组

List<int> a[100]; 

其是100所解释的阵列。每个列表可以包含很多元素。 我不知道如何在c#中做到这一点。谁能帮我?

回答

62

你这样做:

List<int>[] a = new List<int>[100]; 

现在你有一个包含100个空引用类型List<int>的数组。你必须创建列表,并把数组中,例如:

a[0] = new List<int>(); 
1
List<int>[] a = new List<int>[100]; 

你仍然要在阵列中分配每个人名单,然后才能,虽然使用它:

for (int i = 0; i < a.Length; i++) 
    a[i] = new List<int>(); 
1

使用

List<int>[] a = new List<int>[100]; 
6

简单的方法:

 List<int>[] a = new List<int>[100]; 
     for (int i = 0; i < a.Length; i++) 
     { 
      a[i] = new List<int>(); 
     } 

LINQ应用程序罗奇

 var b = Enumerable.Range(0,100).Select((i)=>new List<int>()).ToArray(); 
12

由于没有上下文被赋予这个问题,你是一个相对较新的用户,我想确保你都知道,你可以有列表的列表。这是不一样的列表的数组,就特别针对该要求,但仍:

List<List<int>> myList = new List<List<int>>(); 

您可以通过集合初始化初始化它们像这样:

List<List<int>> myList = new List<List<int>>(){{1,2,3},{4,5,6},{7,8,9}}; 
+0

+1的初始化程序语法(它适用于数组以及列表) – phoog

-6
// The letter "t" is usually letter "i"// 

    for(t=0;t<x[t];t++) 
    { 

     printf(" %2d   || %7d \n ",t,x[t]); 
    } 
+0

您可能想解释一下你的答案。它似乎也没有解决这个问题,即问如何创建一个列表数组,而不是如何打印出任何东西。 –