C# - У чего приоритет больше - у операторов или паттернов?
Вобщем, эта штука удобна в том числе, когда надо проверить переменную на соответствие некоторым значениям перечисления.
Если много разных кейсов обработки переменной на разные значения перечисления - то лучше выражение switch -
weekDay switch =>
{
DaysOfWeek.Monday => ...,
DaysOfWeek.Tuesday => ...,
DaysOfWeek.Wednesday => ...,
...
_ =>
};
Если один кейс на меньшинство значений перечисления, то лучше паттерн "is (or...)" -
bool isHoliday = weekDay is (DaysOfWeek.Saturday or DaysOfWeek.Sunday);
Если один кейс на большинство значений перечисления, то лучше паттерн "is not (or...)" -
bool isWorkingDay = weekDay is not (DaysOfWeek.Saturday or DaysOfWeek.Sunday);
Всё это можно и операторами написать, конечно, но будет раза в полтора длинее и больше разных значков, тогда как выражения с паттернами в основном состоят из слов.