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。有什么好的方法可以做到这一点吗?

c#:根据布尔值选择运算符(一行)

那么,您应该使用最易读的内容,即使它不那么简洁。也就是说…

// 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