TGViewer
.NET Разработчик .NET Разработчик @netdeveloperdiary · 6.76K subscribers
Post #2229 2.64K
День 1844. #Шпаргалка
Примеры Кода для Повседневных Задач

В этой серии представлю вам коллекцию фрагментов кода C#, охватывающих широкий спектр сценариев, с которыми вы можете столкнуться при разработке ПО.

II. Списки. Начало
Среди различных структур данных списки выделяются как наиболее распространённые. В C# список представляет собой «динамический массив». Мы можем добавлять и удалять элементы, не беспокоясь о лежащей в основе реализации, что делает списки интуитивно понятными в обращении.

1. Добавление элемента
C# предлагает множество способов добавления элементов в список:
// Статическая инициализация
var list = new List<int> {1, 2};
// Начиная с C# 12
List<int> list2 = [2, 3];

// Добавление - Add
list.Add(3); // [1, 2, 3]
// Добавление списка - AddRange
list.AddRange(new List<int> {4, 5});
// [1, 2, 3, 4, 5]

// Начиная с C# 12 – оператор расширения
List<int> list3 = [..list2, 4];
// [2, 3, 4]

// Вставка - Insert
list2.Insert(0, 1);
// [1, 2, 3]

// Вставка списка - InsertRange
list2.InsertRange(list2.Count, new List<int> {4, 5});
// [1, 2, 3, 4, 5]

См. подробнее про оператор расширения.

2. Получение последнего элемента
C# предлагает несколько интересных альтернатив:
List<string> list = ["red", "blue", "green"];

// Стандартно через Count
var last = list[list.Count - 1];
// LINQ
last = list.Last();
// индексатор
last = list[^1];


3. Проверка пуст ли список
И снова, есть несколько вариантов (на всякий случай, добавим проверку на null):
// Метод Count
if ((list?.Count ?? 0) == 0)
{
// список пуст
}
// LINQ
if (list?.Any() != true)
{
// список пуст
}


4. Клонирование списка
При работе со ссылочными типами всегда следует помнить, что простое присваивание их другой переменной копирует только ссылку:
List<int> list = [1, 2, 3];
// LINQ
var duplicate = list.ToList();
// Конструктор
duplicate = new List<int>(list);
// Начиная с C# 12 – оператор расширения
duplicate = [..list];


Окончание следует…

Источник:
https://medium.com/bytehide/100-csharp-code-snippets-for-everyday-problems-e913c786dec9
  • 👍 21
More from @netdeveloperdiary
  1. Oct 8, 2026День 2808. #Карьера 5 Навыков, Которые Помогут Быстрее Стать Сеньором. Начало В ИТ есть се…
  2. Oct 7, 2026День 2807. #ЗаметкиНаПолях Типы Коллекций в .NET, Которые Стоит Попробовать. Окончание Нач…
  3. Oct 6, 2026🦈 Открытое собеседование на Middle C# | 6 октября, 19:00 МСК Приглашаем на открытое собес…
  4. Oct 6, 2026День 2806. #ЗаметкиНаПолях Типы Коллекций в .NET, Которые Стоит Попробовать. Начало Больши…
  5. Oct 5, 2026День 2805. #ЧтоНовенького #NET11 Аргументы в Выражениях Коллекций в C#15 В C#15 реализован…
  6. Oct 4, 2026День 2804. #ВопросыНаСобеседовании Марк Прайс предложил свой набор из 60 вопросов (как тех…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →