TGViewer
.NET Разработчик .NET Разработчик @netdeveloperdiary · 6.75K subscribers
Post #2186 2.49K
День 1808. #ЧтоНовенького #CSharp13
Коллекции в Params

Всего месяц после выпуска .NET 8, а команда dotnet уже работает над следующей итерацией: .NET 9. Сегодня посмотрим на одно из предлагаемых нововведений: коллекции в параметрах с ключевым словом params.

Ключевое слово params в C# появилось давно. Оно позволяет передавать в метод переменное количество аргументов:
void PrintNums(params int[] nums)
{
foreach (var n in nums)
Console.WriteLine(n);
}

До сих пор оно было доступно только для массивов. Нововведение позволяет использовать его для коллекций любого типа:
void PrintNumsSpan(
params ReadOnlySpan<int> nums)
{
foreach (var n in nums)
Console.WriteLine(n);
}

void PrintNumsList(
params List<int> nums)
{
nums.ForEach(Console.WriteLine);
}

И теперь эти методы могут быть вызваны любым способом:
PrintNumsSpan(1, 2, 3);
PrintNumsList([1, 2, 3]);


Это позволяет добавить вариативности в использовании ваших методов клиентами и иметь более эффективный код внутри метода. Для полноты картины, в C# 12 вы уже могли сделать так:
List<int> numbers = [1,2,3];
PrintNums([..numbers]);

Тем не менее, новая версия удобнее. Также обещают решить проблемы производительности, присущие нынешней версии params, но это не точно (с).

Подробнее про нововведение можно почитать в предложении на GitHub или попробовать его в действии на SharpLab.

Источник: https://steven-giesel.com/blogPost/5f4fef86-d251-4a47-b893-ca4c515ca314/the-first-possible-new-feature-of-c-13-params-collection
  • 👍 22
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 →