Можно ли как-то поставить в условие case значение переменной?

Да, в языке C# можно использовать значение переменной в условии case в операторе switch. Это позволяет создавать более гибкие конструкции управления потоком выполнения программы.

В простейшем случае, вместо указания конкретного значения в условии case, можно использовать переменную, например:

int x = 5;

switch (x)
{
    case 5:
        Console.WriteLine("Переменная равна 5");
        break;
        
    case 10:
        Console.WriteLine("Переменная равна 10");
        break;
        
    default:
        Console.WriteLine("Переменная имеет другое значение");
        break;
}

В этом примере выполняется проверка значения переменной x на соответствие каждому из значений в условиях case. Если значение x равно 5, выводится соответствующее сообщение. Если значение x равно 10, выводится другое сообщение. Если значение x не равно ни 5, ни 10, то выполняется блок кода в разделе default.

Кроме того, в C# 7.0 и более поздних версиях, можно использовать выражения в условиях case. Это позволяет использовать выражения, в которых присутствует не только простое значение переменной, но и операции сравнения или другие более сложные условия.

int x = 5;

switch (x)
{
    case int n when n > 0 && n < 10:
        Console.WriteLine("Переменная находится в диапазоне от 1 до 9");
        break;
        
    case int n when n <= 0 || n >= 10:
        Console.WriteLine("Переменная находится вне диапазона от 1 до 9");
        break;
        
    default:
        Console.WriteLine("Неизвестное значение переменной");
        break;
}

В этом примере используются условия case, которые проверяют диапазон значения переменной x. Если значение переменной находится в диапазоне от 1 до 9, выводится соответствующее сообщение. Если значение переменной находится вне этого диапазона, выводится другое сообщение. Если значение переменной не соответствует ни одному из указанных условий, выполняется блок кода в разделе default.

Таким образом, в языке C# можно использовать и простые значения переменных, и сложные выражения в условиях case, что позволяет создавать более гибкие и удобочитаемые конструкции управления потоком выполнения программы.