Совершенствуйте свои навыки программирования и стимулируйте инновации с помощью массивов и шаблонов списков.
Как вы знаете, 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]