Позволяет комбинировать различные шаблоны с использованием логических операторов and, or и not. Эти шаблоны предоставляют гибкость и позволяют создавать более сложные условия для сопоставления с шаблоном.
Negated Pattern является частью Logical patterns
Доступны только эти три оператора, больше нет.
<br>
Пример с использованием Relational pattern
```csharp
if (input is > 0 and <= 100 or 200 or not 345)
{
// выполнить операцию
}
```
```csharp
switch (input)
{
case > 0 and <= 100 or 200 or not 345:
// выполнить операцию
break;
}
```
<br>
`if (oldValue.Id is not -1 and not 0)`
и
`if (oldValue.Id is not (-1 or 0))`
логически эквивалентны и оба проверяют, что значение oldValue.Id не равно ни -1, ни 0.