是否可以为数组列表的每个循环指定列? C#

时间:2014-07-25 13:19:03

标签: c# arraylist foreach

我有一个包含两列的数组列表。我也有一个foreach循环。我可以指定只循环第1列吗?任何帮助或建议将不胜感激。谢谢。

foreach (object[] row in myArrayList)
 {
   foreach (object column in row) //I want to specify just the first column here
    {}
 }

2 个答案:

答案 0 :(得分:4)

C#中没有行或列这样的概念。你似乎有一个嵌套数组的情况,就是你有一个行数组,其中每一行本身就是一个数组:

var myArrayList = new[] { new[] { obj1, obj2 }, new[] { obj3, obj4 } }

因此,如果我的问题是正确的,那么您希望提取obj1obj3,例如," first" myArrayList的列。您无法提取列,但您可以使用LINQ Select将数组元素("行")转换为您喜欢的任何内容:

var firstColumn = myArrayList.Select(row => row[0])

然后你可以迭代它:

foreach (object cell in firstColumn)
{ ... }

BTW:您的变量名称myArrayList可能意味着您使用的是ArrayList而不是数组。它并没有什么区别:C#中的数组和各种集合都实现IEnumerable,这是使用LINQ和foreach的唯一先决条件。

答案 1 :(得分:0)

以下代码将为您做到

 foreach (object[] row in myArrayList)
 {
   object column =  row[0]
   //Do what ever you want to do with column
 }