chinnuTest Ответов: 2

Помогите упростить условия if


Привет ,

Я новичок в программировании.. У меня есть один отчет, в котором мне нужно выделить текст столбца красным цветом , если это значение "Fail" для столбцов F1results ,F2results, F3results, F4results, F5results. Я действительно добавил 5 индивидуальных условий if (вы можете видеть ниже , чтобы отобразить этот пользовательский цвет, который работает, но я знаю, что это не очень хорошее программирование, поэтому я публикую здесь, есть ли в любом случае я могу просто это сделать. Огромное спасибо.

по каждому элементу (ВАР данных в програмное)
{
var dto = новый Отчетdto();
ВПД.Подряд.Добавить("наименование", данные.Название);
dto.Row.Add("класс", данные.Класс);
dto.Row.Add("F1results", data.F1results);
dto.Row.Add("F2results", data.F2results);
dto.Row.Add("F3results", data.F3results);
dto.Row.Add("F4results", data.F4results);
dto.Row.Add("F5results", data.F5results);

если (результат.F1results == "Сбой")
{
ДТО.CustomColors.Add("F1results", "#da3434");
}
если (результат.F2results == "Сбой")
{
ДТО.CustomColors.Add("F2results", "#da3434");
}

если (результат.F3results == "Сбой")
{
ДТО.CustomColors.Add("F3results", "#da3434");
}
если (результат.F4results == "Сбой")
{
ДТО.CustomColors.Add("F4results", "#da3434");
}
если (результат.F5results == "Сбой")
{
ДТО.CustomColors.Add("F5results", "#da3434");
}


finalreportdtos.Добавить(dto);
}

Что я уже пробовал:

Я пробовал , как показано ниже, но не уверен, что hw может обновить цвета в текст для соответствующих столбцов здесь.

foreach (var column in dto.Row.Keys)
               {
                   if(column == "F1results" || column== "F2results" || column== "F3results" || column == "F4results" || column == "F5results")

                  {

                   }
                }

2 Ответов

Рейтинг:
5

Richard Deeming

Трудно ответить на ваш вопрос, не видя задействованных типов данных. Но учитывая код, который вы разместили, я предполагаю, что Row и Column оба свойства Dictionary<string, string>, и в этом случае что-то вроде этого должно сработать:

foreach (KeyValuePair<string, string> pair in dto.Row)
{
    if (pair.Value == "Fail")
    {
        dto.CustomColors.Add(pair.Key, "#da3434");
    }
}


Рейтинг:
2

MadMyche

Возможно, что-то подобное могло бы сработать и для вас...

foreach (var column in dto.Row.Keys) {
	if (column.Substring(2, 7) == "results") {
		dto.CustomColors.Add(column, "#da3434");
	}
}


chinnuTest

Большое вам спасибо, Мадмыч, это сработало. Спасибо за вашу помощь..