Що Таке Списки?

Уявімо ситуацію, коли потрібно зберегти імена всіх студентів, які проходять певний курс. Перше рішення, яке спадає на думку, — створити масив:
index.cs
123456using System; class Program { string[] studentNames = new string[50]; }
Однак, якщо в якийсь момент кількість студентів перевищить 50, ми не зможемо зберегти їхні імена. Аналогічно, якщо студентів менше 50, невикористані місця в масиві призведуть до марної витрати пам'яті — це стає проблемою, особливо у великих масивах.
У такій ситуації потрібна нова структура, яка може зберігати змінну кількість елементів. На щастя, така структура вже існує — це Список.
Списки дуже схожі на масиви, однак кількість елементів у списку можна змінювати.

Можливо змінювати існуючі елементи в масиві, однак додавати нові записи до нього не можна.
Наведено синтаксис для оголошення порожнього списку:

За допомогою цього синтаксису можна створити список для зберігання імен студентів:
index.cs
12345678910using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); } }
Важливо зазначити, що для використання списків необхідно імпортувати модуль Generic
.
index.cs
1using System.Collections.Generic;
Потрібно лише додати цей рядок під using System;
, щоб імпортувати необхідний модуль.
Метод Add()
Можна додавати елементи до списку за допомогою методу Add
:
index.cs
123456789101112131415using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); students.Add("Anna"); students.Add("Laura"); students.Add("Jacob"); students.Add("Aron"); } }
Наведений вище код додасть чотири елементи до списку students
.
Як і масив типу string
, який може містити лише елементи типу string
, список типу string
також приймає лише елементи типу string
.
Індексація
Першим елементом є Anna
, отже, він матиме індекс 0
, а Laura
— індекс 1
і так далі. Елементи списку можна отримати за допомогою індексації, так само як і в масиві:
index.cs
1234567891011121314151617using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); students.Add("Anna"); students.Add("Laura"); students.Add("Jacob"); students.Add("Aron"); Console.WriteLine(students[2]); } }
Метод Count()
Можна отримати довжину списку за допомогою атрибута Count
:
index.cs
123456789101112131415161718using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); students.Add("Anna"); students.Add("Laura"); students.Add("Jacob"); students.Add("Aron"); Console.WriteLine(students[2]); Console.WriteLine(students.Count); } }
Динамічна довжина
Зверніть увагу, що довжина списку є динамічною (змінною), тобто змінюється під час додавання елементів:
index.cs
1234567891011121314151617181920using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); Console.WriteLine(students.Count); students.Add("Anna"); Console.WriteLine(students.Count); students.Add("Laura"); Console.WriteLine(students.Count); students.Add("Jacob"); Console.WriteLine(students.Count); students.Add("Aron"); Console.WriteLine(students.Count); } }
Ініціалізація
Можна також ініціалізувати список з деякими елементами, використовуючи наступний синтаксис:
List<dataType> listName = new List<dataType>{ element1, element2, … };
index.cs
12345678910111213141516using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string> { "Anna", "Laura", "Jacob", "Aron" }; // It is still possible to add additional elements after initialization students.Add("Markus"); Console.WriteLine(students.Count); Console.WriteLine(students[4]); } }
Перебір списків
Перебір елементів списку здійснюється аналогічно до масивів
Використання for-циклу
index.cs
123456789101112131415using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string> { "Anna", "Laura", "Jacob", "Aron" }; for (int i = 0; i < students.Count; i++) { Console.WriteLine(students[i]); } } }
Використання циклу foreach
index.cs
123456789101112131415using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string> { "Anna", "Laura", "Jacob", "Aron" }; foreach (string studentName in students) { Console.WriteLine(studentName); } } }
Щоб скоротити синтаксис оголошення, можна також використовувати неявне оголошення. Нагадаємо, що явне оголошення — це коли ми вказуємо тип даних під час оголошення змінної.
index.cs
1float number = 7.9f;
З іншого боку, при неявному оголошенні можна просто використовувати ключове слово var
, і компілятор автоматично визначає тип даних змінної відповідно до присвоєного значення:
index.cs
1var number = 7.9f;
Можна також використовувати неявне оголошення під час створення списків:
index.cs
1var numbers = new List<int> { 1, 2, 3, 4, 5 };
1. Яким буде результат виконання наступного коду:
2. Який модуль необхідно імпортувати для використання списків?
3. Який метод використовується для отримання розміру (довжини) списку?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 2.04
Що Таке Списки?
Свайпніть щоб показати меню

Уявімо ситуацію, коли потрібно зберегти імена всіх студентів, які проходять певний курс. Перше рішення, яке спадає на думку, — створити масив:
index.cs
123456using System; class Program { string[] studentNames = new string[50]; }
Однак, якщо в якийсь момент кількість студентів перевищить 50, ми не зможемо зберегти їхні імена. Аналогічно, якщо студентів менше 50, невикористані місця в масиві призведуть до марної витрати пам'яті — це стає проблемою, особливо у великих масивах.
У такій ситуації потрібна нова структура, яка може зберігати змінну кількість елементів. На щастя, така структура вже існує — це Список.
Списки дуже схожі на масиви, однак кількість елементів у списку можна змінювати.

Можливо змінювати існуючі елементи в масиві, однак додавати нові записи до нього не можна.
Наведено синтаксис для оголошення порожнього списку:

За допомогою цього синтаксису можна створити список для зберігання імен студентів:
index.cs
12345678910using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); } }
Важливо зазначити, що для використання списків необхідно імпортувати модуль Generic
.
index.cs
1using System.Collections.Generic;
Потрібно лише додати цей рядок під using System;
, щоб імпортувати необхідний модуль.
Метод Add()
Можна додавати елементи до списку за допомогою методу Add
:
index.cs
123456789101112131415using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); students.Add("Anna"); students.Add("Laura"); students.Add("Jacob"); students.Add("Aron"); } }
Наведений вище код додасть чотири елементи до списку students
.
Як і масив типу string
, який може містити лише елементи типу string
, список типу string
також приймає лише елементи типу string
.
Індексація
Першим елементом є Anna
, отже, він матиме індекс 0
, а Laura
— індекс 1
і так далі. Елементи списку можна отримати за допомогою індексації, так само як і в масиві:
index.cs
1234567891011121314151617using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); students.Add("Anna"); students.Add("Laura"); students.Add("Jacob"); students.Add("Aron"); Console.WriteLine(students[2]); } }
Метод Count()
Можна отримати довжину списку за допомогою атрибута Count
:
index.cs
123456789101112131415161718using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); students.Add("Anna"); students.Add("Laura"); students.Add("Jacob"); students.Add("Aron"); Console.WriteLine(students[2]); Console.WriteLine(students.Count); } }
Динамічна довжина
Зверніть увагу, що довжина списку є динамічною (змінною), тобто змінюється під час додавання елементів:
index.cs
1234567891011121314151617181920using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); Console.WriteLine(students.Count); students.Add("Anna"); Console.WriteLine(students.Count); students.Add("Laura"); Console.WriteLine(students.Count); students.Add("Jacob"); Console.WriteLine(students.Count); students.Add("Aron"); Console.WriteLine(students.Count); } }
Ініціалізація
Можна також ініціалізувати список з деякими елементами, використовуючи наступний синтаксис:
List<dataType> listName = new List<dataType>{ element1, element2, … };
index.cs
12345678910111213141516using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string> { "Anna", "Laura", "Jacob", "Aron" }; // It is still possible to add additional elements after initialization students.Add("Markus"); Console.WriteLine(students.Count); Console.WriteLine(students[4]); } }
Перебір списків
Перебір елементів списку здійснюється аналогічно до масивів
Використання for-циклу
index.cs
123456789101112131415using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string> { "Anna", "Laura", "Jacob", "Aron" }; for (int i = 0; i < students.Count; i++) { Console.WriteLine(students[i]); } } }
Використання циклу foreach
index.cs
123456789101112131415using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string> { "Anna", "Laura", "Jacob", "Aron" }; foreach (string studentName in students) { Console.WriteLine(studentName); } } }
Щоб скоротити синтаксис оголошення, можна також використовувати неявне оголошення. Нагадаємо, що явне оголошення — це коли ми вказуємо тип даних під час оголошення змінної.
index.cs
1float number = 7.9f;
З іншого боку, при неявному оголошенні можна просто використовувати ключове слово var
, і компілятор автоматично визначає тип даних змінної відповідно до присвоєного значення:
index.cs
1var number = 7.9f;
Можна також використовувати неявне оголошення під час створення списків:
index.cs
1var numbers = new List<int> { 1, 2, 3, 4, 5 };
1. Яким буде результат виконання наступного коду:
2. Який модуль необхідно імпортувати для використання списків?
3. Який метод використовується для отримання розміру (довжини) списку?
Дякуємо за ваш відгук!