Охранное условие when в C#
Охрана when на той же ветке уточняет образец без второго switch.
Условие вычисляют после успешного сопоставления.
Число 15 нечётное, поэтому первая ветка не подходит. Оно больше десяти, поэтому подходит ветка больших нечётных. Если значение подошло бы к нескольким веткам, победит верхняя:
int n = 15;
string kind = n switch
{
int x when x % 2 == 0 => "even",
int x when x > 10 => "big-odd",
_ => "other"
};
Console.WriteLine(kind); // выведет "big-odd"
Для числа 12 верните "large", если оно больше десяти, иначе "other".
Для строки "go" верните "pair", если в ней два символа, иначе "other".