C# Academy · Урок

Коллекции в C#: списки, словари и очереди

Изучите коллекции C#, чтобы эффективно управлять динамическими данными

Урок 6 из 610 шагов

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

Работа с коллекциями: списки, словари и очереди

Добро пожаловать на следующий урок! На этом уроке вы узнаете о коллекциях в C#, включая списки, словари и очереди, а также о том, как эффективно использовать их в своих программах. Давайте начнём!

Коллекции в C#: списки, словари и очереди — иллюстрация 1

Что такое коллекции?

Коллекции в 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#: списки, словари и очереди — иллюстрация 10
Можно начать бесплатно

Изучай 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 — локальная установка не требуется.

Все уроки этого курса

  1. Введение в интерфейсы
  2. Абстрактные классы
  3. Статические члены и методы
  4. Перечисления и структуры
  5. Делегаты и события
  6. Коллекции в C#: списки, словари и очереди
← Назад к C# Academy