我有一个包含两列的数组列表。我也有一个foreach循环。我可以指定只循环第1列吗?任何帮助或建议将不胜感激。谢谢。
foreach (object[] row in myArrayList)
{
foreach (object column in row) //I want to specify just the first column here
{}
}
答案 0 :(得分:4)
C#中没有行或列这样的概念。你似乎有一个嵌套数组的情况,就是你有一个行数组,其中每一行本身就是一个数组:
var myArrayList = new[] { new[] { obj1, obj2 }, new[] { obj3, obj4 } }
因此,如果我的问题是正确的,那么您希望提取obj1
和obj3
,例如," 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
}