Итерации над элементами массивов и списков в C#
Вы можете использовать цикл foreach для перебора элементов массивов, списков, коллекций и других объектов с методом GetEnumerator. Этот цикл часто больше подходит, в отличие от for или while, потому что вам не нужно беспокоиться о том, сколько элементов находится в коллекции или когда прекратить итерацию.
Этот обработчик события Form_Load этого примера использует следующий код для инициализации двух массивов, списка и словаря.
// Создаем два массива, список и словарь. string[] fruits = { "Apple", "Banana", "Cherry" }; Listcookies = new List () { "Chocolate Chip", "Snickerdoodle", "Peanut Butter" }; Dictionary dict = new Dictionary< >() { {1, "One"}, {2, "Two"}, {3, "Three"}, }; string[,] array2d = { { "0, 0", "0, 1", "0, 2"}, { "1, 0", "1, 1", "1, 2"}, };
Затем программа использует следующий код для повторения элементов в различных коллекциях.
// Производим итерацию элементов в массивах, списке и словаре. foreach (string fruit in fruits) lstFruits.Items.Add(fruit); foreach (string cookie in cookies) lstCookies.Items.Add(cookie); foreach (KeyValuePair<> pair in dict) lstDictionary.Items.Add(pair); foreach (string item in array2d) lstRowColumn.Items.Add(item);
Первый цикл foreach относительно прост. Он использует переменную fruit, которая имеет тип string, потому что это тип данных массива fruit. Во время цикла переменная fruit принимает каждое из значений в массиве. Она принимает каждое значение по порядку, а код добавляет эти значения в lstFruits ListBox.
Второй цикл аналогичным образом перебирает элементы в куках списка. Файл cookie строковой переменной принимает поочередно каждое из значений в списке, а код цикла добавляет их в список LstCookies ListBox.
Третий цикл повторяется над словарем
Заключительный цикл повторяется над элементами в двумерном массиве, что многие программисты не реализовывают. Если вы посмотрите внимательно на картинку, вы увидите, что цикл перечисляет элементы в массиве в строчном порядке. Другими словами, сначала перечисляются элементы в первой строке, затем элементы во второй строке и т.д..
Источник: