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