c#:根据布尔值选择运算符(一行)
本文关键字:运算符 一行 选择 布尔值 | 更新日期: 2023-09-27 18:08:27
我试着用一个圆滑的一行字来逃避,因为我觉得这是可能的。
我将把我的代码放在下面,然后试着解释一下我想要实现的目标。
for (int p = 0; p < 2; p++)
{
foreach (string player in players[p])
{
if (PlayerSkills[player].streak_count *>* 0) //This line
PlayerSkills[player].streak_count++;
else
PlayerSkills[player].streak_count = 0;
}
}
* (p = = 0 ?>:<)根据p选择比较操作符。
我写的当然是垃圾。但基本上我想在p==0时使用>0,在p>>0时使用<0。有什么好的方法可以做到这一点吗?
那么,您应该使用最易读的内容,即使它不那么简洁。也就是说…
// Invert the count for all but the first player and check for a positive number
if (PlayerSkills[player].streak_count * (p==0 ? 1 : -1) > 0)
我不知道什么是slick,但是下面的and/or组合是一行:
if ((p == 0 && PlayerSkills[player].streak_count > 0)
|| PlayerSkills[player].streak_count < 0)
...
这将只执行一次数组索引(由于p==0条件首先发生),因此相当于您编写的"三元制"(尽管有点冗长)。
p > 0 ? whenGreaterThanZero : whenZeroOrLess ;
。
int p = 1; bool test = p > 0 ? true : false ;
让test
= True