【问题标题】:How create many list as array?如何创建多个列表作为数组?
【发布时间】:2015-06-17 03:12:52
【问题描述】:

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

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

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

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

然后我怎样才能在 10 个项目列表中的每一个中存储超过 1 个元素??

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

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

【问题讨论】:

  • 您可能正在寻找List&lt;string[]&gt; item = new List&lt;new string[10]&gt;(); 或类似的东西
  • 我可以这样使用列表吗?项目[1] 或项目[5] ....
  • 没有。您必须使用 item[1][1]; 或类似的语法。或者只使用一个简单的List&lt;string&gt;,除非你真的想要一个包含 10 个元素的字符串数组的 List,其中 List&lt;T&gt; 中的每个元素都是一个 10 个元素的字符串数组。
  • 不,我想要 10 个可以包含许多元素的列表,10 个带有动态空间的项目
  • List&lt;T&gt; 可以包含任意数量的元素 - 它是动态的。你是说你想要 10 个单独的 List&lt;T&gt; 实例,还是只想要一个具有动态元素数量的实例?

标签: c# arrays string list


【解决方案1】:

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

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

每个列表都没有初始化,因此您需要先初始化列表才能使用它,并且可以通过正常的索引器语法访问每个列表。..

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&lt;string&gt;,只需使用列表列表即可。

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

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

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

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

【讨论】:

  • items[0].Add("另一个字符串");当我使用它时,它有错误并说它是空的
  • @GreenHill 这是因为您没有初始化该列表实例。在这两种技术中,我在使用前初始化父数组/列表内的列表实例。你不能错过这关键的一步!我还添加了一个快速示例,说明如何在使用父数组时初始化每个列表。
【解决方案2】:

根据你的 cmets

“我想要 10 个具有动态空间的单独列表”

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

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

【讨论】:

  • 我喜欢List&lt;List&lt;string&gt;&gt; 方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-15
  • 2011-12-14
  • 1970-01-01
  • 2014-01-24
  • 2016-03-03
  • 2020-03-18
相关资源
最近更新 更多