如何创建多个列表作为数组?

时间:2015-06-17 03:12:53

标签: c# arrays string list

我在数组

中创建一组列表时遇到问题

这是我的编码,但这是错误的,对此有任何更正吗?

List<string>[] item = new List<string>[10]();

我想在名为item的字符串中创建10个列表,但我不能这样做

然后如何在10个项目列表中存储多个元素?

item[1].add(a);     //when I want to print that a I use item[1][0]
item[1].add(b);     //when I want to print that b I use item[1][1]

item[2].add(aa);
item[2].add(bb);

但是如何在每个列表中存储元素?

2 个答案:

答案 0 :(得分:1)

如果你确定你想要十个列表,你可以使用一个实例化为10个项目的数组,每个项目都是一个字符串列表。

List<string> [] items = new List<string> [10];

每个List都没有初始化,所以你需要初始化你的列表才能使用它,并且可以通过普通的索引器语法访问每个列表。

if (items[0] == null)
    items[0] = new List<string>();

初始化后,您可以填写数据。

items[0].Add("another string");

如果您想预先初始化每个列表以便不会出现NullReferenceException,请在循环中执行此操作。

for (var i = 0; i < items.Length; i++)
    items[i] = new List<string>();

但是,如果您认为您的商品可能需要保留更多List<string>,那么只需使用列表清单即可。

List<List<string>> items = new List<List<string>>();

List包装数组并为您提供一些很好的语法糖和优化扩展数组,使您的生活更轻松。您仍然可以使用索引器语法来访问列表中的每个列表。

if (items[0] == null)
    items[0] = new List<string>();

items[0].Add("another string").

答案 1 :(得分:1)

根据您的意见

  

&#34;我想要10个具有动态空间&#34;

的separete列表

您可以按如下方式定义您的收藏。

List<string> [] collection= new List<string> [10];

for(int i=0; i<10; i++)
collection[i] = new List<string>();

或者,如果您不关心阵列的大小,那么您可以使用它。

List<List<string>> collection = new List<List<string>>();