C# 获取arraylist中数组中的元素

C# 获取arraylist中数组中的元素,c#,arrays,C#,Arrays,我尽量简明扼要。我无法在网上找到答案,虽然我确信答案在那里,但我在网上查看了这些问题,没有找到我想要的: 我有一个ArrayList,其中包含许多数组,每个数组都是一维的,并且元素数量不同(包括string和int)。如何访问ArrayList中的元素?Linq有一个扩展方法SelectMany,它使所有子列表看起来都是一个列表 array.SelectMany(i=>i) 您可以使用of type和SelectMany,例如,您可以在一维数组中获取所有字符串和整数值,如下所示: Arra

我尽量简明扼要。我无法在网上找到答案,虽然我确信答案在那里,但我在网上查看了这些问题,没有找到我想要的:


我有一个
ArrayList
,其中包含许多数组,每个数组都是一维的,并且元素数量不同(包括string和int)。如何访问
ArrayList
中的元素?

Linq有一个扩展方法SelectMany,它使所有子列表看起来都是一个列表


array.SelectMany(i=>i)

您可以使用
of type
SelectMany
,例如,您可以在一维数组中获取所有
字符串
整数
值,如下所示:

ArrayList arr = new ArrayList();
arr.Add(new []{ 1, 2, 3, 4, 5});
arr.Add(new [] {"asdas", "asdsa"});
var stringValues = arr.OfType<Array>()
                      .SelectMany(x => x.OfType<string>());  // asdas asdsa
var intValues = arr.OfType<Array>()
                   .SelectMany(x => x.OfType<string>());  // 1 2 3 4 5
ArrayList arr=new ArrayList();
arr.Add(新[{1,2,3,4,5});
arr.Add(新[]{“asdas”、“asdsa”});
var stringValues=类型()的排列
.SelectMany(x=>x.OfType());//asdas asdsa
var intValues=类型()的排列
.SelectMany(x=>x.OfType());//1 2 3 4 5

如果arraylist标记不适用,请将其删除。虽然C#在System.Collections下有一个名为ArrayList的类,但标记明确引用了Java,因此我不确定是否应该使用它。您希望访问哪种类型的元素?一维数组中的所有元素?ArrayList包含数组列表。这些数组中有不同数量的项。这些数组中的任何项都可以是字符串或整数,并且可能以不同的配置出现。我找不到type或SelectMany的方法。我不熟悉Linq,但看起来(根据下面的答案)这可能就是你所说的。@别忘了我的账户。。。您正在使用哪个版本的.NET Framework?添加对System.Linq.dll的引用,
using System.Linq
using语句有效,我使用的是4.0版。我不知道有任何引用在其他引用中添加了方法。Linq导入添加了OfType(),但没有添加SelectMany()。这是不可能的,
SelectMany
在4.0中受支持,并且SelectMany和OfType在同一程序集中。您做错了什么。@StopForningMyAccounts。。。SelectMany方法不将ArrayList作为第一个参数。您应该使用of Type或Cast方法访问该方法,因为它需要
IEnumerable
。请参阅我的答案,我是否使用了ArrayList.SelectMany?