C#从包含数组的列表中循环索引

时间:2013-06-30 08:00:08

标签: c# arrays list loops

我创建了一个数组列表。但我试图访问一个特定的索引来拉取特定的数组,以便我可以循环。并从中获取价值。我甚至不确定如何启动代码。我的数组列表中的项目每个都有1个aray和5个valuse。有什么建议吗?

3 个答案:

答案 0 :(得分:2)

这样的事情

List<int[]> l = new List<int[]>();
l.Add(new int[] { 1, 2, 3 });
l.Add(new int[] { 2, 3, 4 });
l.Add(new int[] { 3, 4, 5 });
int a = l[2][2]; // a = 5

答案 1 :(得分:1)

如果您知道索引,可以使用List中的索引循环遍历特定数组。

例如,假设您有一个名为listOfArrays的List,并且您希望遍历第二个数组:

foreach (int element in listOfArrays[1])
{
    // do something with the array
}

listOfArrays[1]将返回列表中第二个位置的int []。

或者,您可以遍历整个列表并像这样处理每个数组:

foreach (int[] arr in listOfArrays)
{

    foreach (int element in arr)
    {

        // do something with the array
    }
}

但听起来你只想访问列表中的指定数组,而不是所有数组。

答案 2 :(得分:0)

希望,一些例子可以帮助你

List<int[]> myList = new List<int[]>(); // <- MyList is list of arrays of int

// Let's add some values into MyList; pay attention, that arrays are not necessaily same sized arrays:

myList.Add(new int[] {1, 2, 3});
myList.Add(new int[] {4, 5, 6, 7, 8});
myList.Add(new int[] {}); // <- We can add an empty array if we want
myList.Add(new int[] {100, 200, 300, 400});

// looping through MyList and arrays 

int[] line = myList[1]; // <- {4, 5, 6, 7, 8}
int result = line[2]; // <- 6

// let's sum the line array's items: 4 + 5 + 6 + 7 + 8

int sum = 0;

for (int i = 0; i < line.Length; ++i)
  sum += line[i];

// another possibility is foreach loop:
sum = 0;

foreach(int value in line) 
  sum += value;   

// let's sum up all the arrays within MyList
totalSum = 0;

for (int i = 0; i < myList.Count; ++i) {
  int[] myArray = myList[i];

  for (int j = 0; j < myArray.Length; ++j)
    totalSum += myArray[j];  
}

// the same with foreach loop
totalSum = 0;

foreach(int[] arr in myList)
  foreach(int value in arr) 
    totalSum += value;