Совершенствуйте свои навыки программирования и стимулируйте инновации с помощью массивов и шаблонов списков.

Как вы знаете, Microsoft представила сопоставление с образцом в версии 7 C#. Но подождите, C#11 принес новые шедевры.

Microsoft превратила его в важную и влиятельную структуру управления для повседневных ситуаций. Шаблоны списков позволяют рекурсивно применять шаблоны к отдельным элементам входных данных в виде списка — или, по крайней мере, к разделу.

Исходя из этого, новые функции переключения выражений предлагают невиданные ранее высоты практических возможностей проверки совпадений.

Основа для работы

Я воспользуюсь следующим примером, который послужит центральной иллюстрацией, которая будет далее развита.

var array = new int[] { };

var match = array switch
{
    _ => "No matchy matchy"
};

Console.WriteLine(match);

// Console -> No matchy matchy

Приведенный пример прост, но является идеальной отправной точкой для любого уровня опыта.

Что это делает? Он проверяет целочисленный массив на наличие совпадений и при необходимости выводит соответствующее сообщение.

Первая Эволюция

Первоначально пример расширен за счет проверки пустого массива, представленного открывающей и закрывающей квадратной скобкой.

var arrayEvo1 = new int[] { };
var matchEvo1 = arrayEvo1 switch
{
    [] => "Nothing here!",
    _ => "No matchy matchy"
};

Console.WriteLine(matchEvo1);

// Console -> Nothing here!

В нижней части отображается соответствующий вывод терминала.

Вторая Эволюция

Ожидается, что при следующем сопоставлении значение 1 должно находиться в позиции 0, а значение 3 должно находиться в позиции 1, чтобы удовлетворить условию.

var arrayEvo2 = new int[] { 1, 3 };
var matchEvo2 = arrayEvo2 switch
{
    [] => "Nothing here!",
    [1, 3] => "Match Perfectly [1, 3]",
    _ => "No matchy matchy"
};

Console.WriteLine(matchEvo2);

// Console -> Match Perfectly [1, 3]