Коллекции в C#: списки, словари и очереди
Изучите коллекции C#, чтобы эффективно управлять динамическими данными
«Коллекции в C#: списки, словари и очереди» — бесплатный урок C# Academy на CoddyKit. Это урок 6 из 6. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C# Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C# Academy содержит 6 уроков всего.
Работа с коллекциями: списки, словари и очереди
Добро пожаловать на следующий урок! На этом уроке вы узнаете о коллекциях в C#, включая списки, словари и очереди, а также о том, как эффективно использовать их в своих программах. Давайте начнём!

Что такое коллекции?
Коллекции в C# — это классы, которые хранят и обрабатывают группы связанных объектов. В отличие от массивов, коллекции являются динамическими и обеспечивают большую гибкость и функциональность.
Ключевой момент: Коллекции упрощают работу с группами данных, предоставляя встроенные методы для добавления, удаления и поиска элементов.
Работа со списками
Список — это коллекция, допускающая повторяющиеся элементы и сохраняющая их порядок. Пример:
Совет: Используйте списки, когда необходимо хранить упорядоченные коллекции данных и управлять ими.
using System;
using System.Collections.Generic;
class Program {
static void Main() {
List<string> names = new List<string> { "Alice", "Bob", "Charlie" };
names.Add("Diana"); // Add an element
names.Remove("Bob"); // Remove an element
Console.WriteLine("Names:");
foreach (string name in names) {
Console.WriteLine(name);
}
}
}
Работа со словарями
Словарь — это коллекция пар «ключ — значение». Каждый ключ уникален и используется для доступа к связанному с ним значению. Пример:
Ключевой момент: Словари идеально подходят для ситуаций, в которых требуется быстрый поиск по уникальным ключам.
using System;
using System.Collections.Generic;
class Program {
static void Main() {
Dictionary<string, int> ages = new Dictionary<string, int> {
{ "Alice", 25 },
{ "Bob", 30 },
{ "Charlie", 35 }
};
ages["Diana"] = 28; // Add a key-value pair
ages.Remove("Bob"); // Remove a key-value pair
Console.WriteLine("Ages:");
foreach (var entry in ages) {
Console.WriteLine($"{entry.Key}: {entry.Value}");
}
}
}
Работа с очередями
Очередь — это коллекция, которая следует принципу «первым пришёл — первым вышел» (FIFO). Элементы добавляются в конец и удаляются из начала. Пример:
Совет: Используйте очереди для задач, которые необходимо обрабатывать в порядке их добавления.
using System;
using System.Collections.Generic;
class Program {
static void Main() {
Queue<string> tasks = new Queue<string>();
tasks.Enqueue("Task 1"); // Add to the queue
tasks.Enqueue("Task 2");
tasks.Enqueue("Task 3");
Console.WriteLine("Processing tasks:");
while (tasks.Count > 0) {
Console.WriteLine(tasks.Dequeue()); // Remove from the queue
}
}
}
Сравнение коллекций
Ниже приведено краткое сравнение коллекций:
- Список: Сохраняет порядок, допускает повторения и предоставляет доступ по индексу.
- Словарь: Хранит пары «ключ — значение» для быстрого поиска.
- Очередь: Обрабатывает элементы в порядке «первым пришёл — первым вышел».
Совет: Выбирайте тип коллекции, который лучше всего подходит для вашей задачи.
Практическое задание
Создайте программу, которая использует словарь для хранения цен товаров product и очередь для имитации оформления покупок клиентами. Пример:
using System;
using System.Collections.Generic;
class Program {
static void Main() {
Dictionary<string, double> products = new Dictionary<string, double> {
{ "Apple", 0.5 },
{ "Banana", 0.3 },
{ "Carrot", 0.2 }
};
Queue<string> customers = new Queue<string>();
customers.Enqueue("Customer 1");
customers.Enqueue("Customer 2");
Console.WriteLine("Processing customers:");
while (customers.Count > 0) {
string customer = customers.Dequeue();
Console.WriteLine($"{customer} is buying:");
foreach (var product in products) {
Console.WriteLine($"- {product.Key}: ${product.Value}");
}
}
}
}
Рекомендации по коллекциям
Ниже приведены рекомендации:
- Выбирайте подходящий тип коллекции с учётом требований (например, быстрого поиска, сохранения порядка или обработки по принципу FIFO).
- Используйте обобщённые коллекции (например,
List<T>,Dictionary<TKey, TValue>) для обеспечения безопасности типов. - Всегда проверяйте коллекции на отсутствие значения или пустоту перед обращением к элементам.
Совет: Правильное управление коллекциями может сделать код более эффективным и понятным.
Отличная работа!
Поздравляем! Вы научились использовать списки, словари и очереди для динамического управления данными в C#. На этом завершается раздел «Расширенные концепции программирования». Продолжайте программировать и изучать более сложные темы в процессе своего развития!

Изучай C# с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 93
- Уроки
- 346
Часто задаваемые вопросы
Урок «Коллекции в C#: списки, словари и очереди» бесплатный?
Да — полный текст урока «Коллекции в C#: списки, словари и очереди» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C# Academy, подпишись на CoddyKit PRO. Курс C# Academy содержит 6 уроков всего.
Чему я научусь в уроке «Коллекции в C#: списки, словари и очереди»?
Изучите коллекции C#, чтобы эффективно управлять динамическими данными Ты практикуешь C# Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать C# Academy?
Предыдущий опыт не требуется. C# Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 6 из 6.
Сколько времени занимает урок «Коллекции в C#: списки, словари и очереди»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке C# Academy?
Да. Каждый урок C# Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Введение в интерфейсы
- Абстрактные классы
- Статические члены и методы
- Перечисления и структуры
- Делегаты и события
- Коллекции в C#: списки, словари и очереди