Паттерн отбрасывания
В шаблоне одиночное _ - паттерн
отбрасывания: он всегда успешен и не вводит
имя, в отличие от отбрасывания
в присваивании или out. Пишут
obj is _ или ставят _
на место элемента в позиционном и списковом
шаблоне, например (1, _).
Синтаксис
значение is _
(элемент1, _, элемент3)
Пример
Давайте проверить значение паттерном is _
без создания переменной:
using System;
class Program
{
static void Main()
{
object obj = "abcde";
bool res = obj is _;
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Пример
Давайте использовать _ в условии
is вместо имени:
using System;
class Program
{
static void Main()
{
int num = 5;
if (num is _)
{
Console.WriteLine("any");
}
}
}
Результат выполнения кода:
"any"
Пример
Давайте отбросить второй элемент кортежа в позиционном шаблоне:
using System;
class Program
{
static void Main()
{
(int a, int b) pair = (1, 2);
if (pair is (1, _))
{
Console.WriteLine("first is 1");
}
}
}
Результат выполнения кода:
"first is 1"
Пример
Давайте пропустить первые два числа в шаблоне списка:
using System;
class Program
{
static void Main()
{
int[] nums = [1, 2, 3, 4, 5];
if (nums is [_, _, 3, ..])
{
Console.WriteLine("third is 3");
}
}
}
Результат выполнения кода:
"third is 3"
Смотрите также
-
паттерн
var,
который всегда создаёт именованную переменную -
позиционный паттерн
по позиции,
где_заменяет отдельные части -
паттерн
списка,
который сопоставляет элементы массива -
отбрасывание
_,
когда игнорируют результат в коде