2013-06-30 2 views
1

Я создал список массивов. Но я пытаюсь получить доступ к определенному индексу, чтобы вытащить конкретный массив, чтобы я мог выполнить цикл. и получить от него значения. Я даже не уверен, как запустить список code.my массивов имеет элементы, каждый с 1 aray с 5 valuse. Какие-либо предложения?C# Цикл через индекс из списка, который содержит массив

+1

Это помогло бы знать, какой язык вы используете! –

+0

какой язык ??? – dejavu

+4

Вы должны опубликовать фрагмент вашего существующего кода. –

ответ

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 
+0

Это показывает OP, как получить доступ к данному элементу данного массива в списке, но не как пропустить данный массив в списке, и это то, о чем они, похоже, спрашивают. – Tim

1

Вы можете использовать индекс в списке, чтобы петли через определенный массив, если вы знаете, что индекс.

Например, у вас есть список с именем listOfArrays, и вы хотите перебрать второй массив:

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

listOfArrays[1] вернет ИНТ [] во второй позиции в списке.

В качестве альтернативы, вы можете перебрать весь список и обрабатывать каждый массив как это:

foreach (int[] arr in listOfArrays) 
{ 

    foreach (int element in arr) 
    { 

     // do something with the array 
    } 
} 

Но это звучит, как вы хотите, чтобы просто получить доступ к указанному массиву в списке, не все из них.

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;