简化这个数组插入代码的方法?

时间:2015-03-11 00:06:32

标签: c# arrays boolean refactoring

如果我有这段代码:

array[0] = a < b ? c : d
array[1] = a < b ? d : c

有没有办法优雅地简化它?

我知道我可以做这样的事情来避免双布尔检查:

if (a < b)
{
    array[0] = c;
    array[1] = d;
}
else
{
    array[0] = d;
    array[1] = c;
}

但它相当冗长。

我错过了一些明显的东西吗?

1 个答案:

答案 0 :(得分:5)

计算索引以将变量赋值给,而不是用于每个索引的变量。

int cLocation = a < b ? 0 : 1;
array[cLocation] = c;
array[1 - cLocation] = d;