Нужно объединить два лямбда-выражения в одно, чтобы выполнить два отдельных условия одного параметра - PullRequest
0 голосов
/ 04 мая 2020

tempChoiceConfigItems является списком и имеет два свойства, IsIncluded и IsSelected.

В случае, когда оба они истинны, тогда IsIncluded предпочтет и для этого элемента IsSelected будет истинным, а все остальные IsSelected будут ложными.

Можно ли написать это в одном лямбда-выражении?

if (tempChoiceConfigItems.Any(cg => cg.IsIncluded == true)) {
    tempChoiceConfigItems.Where(wtci => wtci.IsIncluded == true)
    .Select(stc => {
        stc.IsSelected = true;
        return stc;
    })
    .ToList();

    tempChoiceConfigItems.Where(wtci => wtci.IsIncluded == false)
    .Select(stc => {
        stc.IsSelected = false;
        return stc;
    })
    .ToList();
}

Ответы [ 3 ]

1 голос
/ 04 мая 2020

Замените весь этот кусок кода на:

tempChoiceConfigItems.ForEach(x => { x.IsSelected = x.IsIncluded; });
0 голосов
/ 04 мая 2020

Я сделал это

            if (tempChoiceConfigItems.Any(cg => cg.IsIncluded == true))
            {
                tempChoiceConfigItems
                .Select(stc =>
                {
                    stc.IsSelected = stc.IsIncluded;
                    return stc;
                })
                .ToList();
            }
0 голосов
/ 04 мая 2020
tempChoiceConfigItems.ForEach(x=> {if(x.IsIncluded == true && x.IsSelected==true) x.IsSelected=true; else x.IsSelected=false;});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...