【问题标题】:C# - how to get a List<List<string>> from an ArrayList?C# - 如何从 ArrayList 中获取 List<List<string>>?
【发布时间】:2012-06-08 07:07:55
【问题描述】:

我被难住了,可能是非常愚蠢 - 但我无法弄清楚这一点。

我有一些数据正在转换为ArrayList。数据如下所示:

[[“a”、“b”、“c”]、[“1”、“2”、“3”]]

所以本质上,它是一个字符串数组。我很想把它变成这种格式List&lt;List&lt;string&gt;&gt;,这样我就可以轻松地访问和操作数据——但我不知道该怎么做!

由于ArrayList 不是强类型的,我在尝试将ArrayList 的第一个元素转换为任何有用的东西时遇到了麻烦。

从下面的 sn-p 可以看出,ArrayList 有两个元素,每个元素有 26 个元素(代表我的数据,有两个 26 个字符串的条目)。

谁能告诉我如何将上述数据的ArrayList 表示转换为List&lt;List&lt;string&gt;&gt;

谢谢!!

【问题讨论】:

  • 所以它是一个ArrayList 的数组?还是ArrayListArrayList?还是ArrayList 的其他东西?

标签: c# multidimensional-array arraylist


【解决方案1】:

我相信这样做会成功

List<List<string>> listlistString = arrList.Cast<IEnumerable>()
    .Select(ienum => ienum.Cast<string>().ToList()).ToList(); 

【讨论】:

  • 谢谢 - 但是ArrayList 没有选择...?
  • .Cast&lt;string&gt;().Select(x =&gt; x.ToString()) 是多余的 - 它已经是 string,那么为什么还要另一个 .ToString()
  • 嘿 JB - 谢谢,我认为现在可以解决问题了。在看到您的更新之前,我尝试了 Jeff 的答案,所以我将其标记为答案。不过为快速响应干杯:)
  • @AndreasNiedermair 哎呀,已修复。谁能告诉我自从我不得不处理 ArrayLists 以来已经有一段时间了? :)
【解决方案2】:

怎么样

List<List<string>> result = myarraylist.Cast<string[]>()
                                       .Select(x => x.ToList())
                                       .ToList();

【讨论】:

  • 不幸的是什么也没返回。杰夫对 IEnumerable 的回答给出了正确的结果。不过谢谢:)
  • @Stretch:它适用于我。我在我的数组列表中添加了myal.Add(new string[]{"a", "b", "c"})myal.Add(new string[]{"1", "2", "3"}) 并运行了我的代码。作为一个魅力工作。在你的地方发生的事情不起作用。
  • 不确定.. 我刚刚又试了一次,但仍然没有返回任何内容。我想它必须与最初设置数据的方式有关?例如,您正在使用字符串数组设置ArrayList,而我的ArrayList 将只有一个对象列表..?
  • @Stretch:那么在这种情况下使用Cast&lt;string[]&gt;() 而不是OfType&lt;string[]&gt;()。现在可以用了吗?
  • 他实际上有一个ArrayListArrayList,所以这也行不通。一般来说,最好转换为不太具体的类型,这样您就不会遇到此类问题。
【解决方案3】:

在处理非泛型集合时,如果您执行Cast&lt;&gt;() 或使用OfType&lt;&gt;() 进行过滤,则可以使用一些 LINQ。假设这些是同类集合,您可以这样做:

arrList.Cast<IEnumerable>()
       .Select(enumerable => enumerable.Cast<string>()
                                       .ToList())
       .ToList();

【讨论】:

  • 杰夫 - 谢谢!这是一种享受。首先,我完全理解它。我会把这个放在我的记忆库里。谢谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-10
  • 2014-07-22
  • 2017-05-08
  • 1970-01-01
  • 2021-09-18
  • 1970-01-01
相关资源
最近更新 更多