Как определить какое условие выполнено, если в условии несколько вариантов
Есть условие, в котором расположилось некоторое количество "ИЛИ"
if (spec1 == selspec.Text || spec2 == selspec.Text || spec3 == selspec.Text || spec4 == selspec.Text || spec5 == selspec.Text || spec6 == selspec.Text || spec7 == selspec.Text || spec8 == selspec.Text )
{
MessageBox.Show("");
}
Как мне определить какое именно условие было выполнено?
Вроде того как если spec5 подходит под условие, то и нужно в месседже написать, что условие выполненно по spec5. но и при этом, как есть 8 spec, так есть и 8 других переменных (Например "ссс1", "ссс2" итд) и нужно выбрать переменную ссс с тойже цифрой, что была выполнена в условии.
Т.е если spec5 выполнено то нужна переменная ссс5
Ответы (1 шт):
Никак. Если результат должен зависеть от выполненного условия, то и нужно делать отдельную ветку для каждой переменной, а не проверять всё скопом.
if (spec1 == selspec.Text) {do ccc1}
else if (spec2 == selspec.Text) {do ccc2}
else if (spec3 == selspec.Text ) {do ccc3}
Итд.
Или можно придумать что-нибудь с массивами или словарями, чтобы не писать отдельный код для каждого значения, если вдруг появятся новые случаи.
Например, два массива - один со значениями Text, другой со значениями ccc в том же порядке. В цикле проверять Text, и если совпало, то брать ccc с тем же индексом.
Или switch, если с# позволяет использовать там текст.