没有ELSE的内联IF

Igg*_*ggY 0 c# linq

我正在尝试更新List基于a/1模式的对象的属性string.

//list.length is always == pattern.length
string pattern = Convert.ToString(8, 2);
var listWithDeleted = list.Select((s, index) => pattern[index] == '1' ? s.IsDeleted == true : s.IsDeleted = s.IsDeleted);
Run Code Online (Sandbox Code Playgroud)

我对有些难过else-clause : s.IsDeleted = s.IsDeleted我的内联的if语句来.我理解内联if需要一个else-clause,因为它需要返回一个值,但它让我想知道是否有更简洁的方法来做到这一点.

Jam*_*rpe 10

您可以使用:

s.IsDeleted = pattern[index] == '1' || s.IsDeleted
Run Code Online (Sandbox Code Playgroud)

如果它已经true,它会留true不管pattern[index],否则只会成为真,如果pattern[index]'1'