Как я могу упростить код в цикле foreach indexOF? - PullRequest
0 голосов
/ 03 июня 2019

У меня есть модель с большим количеством строк с именем «hours1, hours2, hours3 ...», которую используют для назначения индекса foreach.как я могу просто этот код?спасибо

if (colNames.IndexOf(item2) == 0)
{
    if (model.Hours == null)
    {
        item.Hours = 0;
    }
    else
    {
        item.Hours = (decimal)model.Hours;

    }
}
if (colNames.IndexOf(item2) == 1)
{
    if (model.Hours1 == null)
    {
        item.Hours = 0;
    }
    else
    {
        item.Hours = (decimal)model.Hours1;
    }
}

if (colNames.IndexOf(item2) == 2)
{
    if (model.Hours2 == null)
    {
        item.Hours = 0;
    }
    else
    {
        item.Hours = (decimal)model.Hours2;
    }

}

1 Ответ

4 голосов
/ 03 июня 2019

Это не очень красиво, но возможно:

decimal? hours = null;
switch(colNames.IndexOf(item2))
{
    case 0: hours = model.Hours; break;
    case 1: hours = model.Hours1; break;
    case 2: hours = model.Hours2; break;
}
item.Hours = hours ?? 0M;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...