如果我有这段代码:
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;
}
但它相当冗长。
我错过了一些明显的东西吗?
答案 0 :(得分:5)
计算索引以将变量赋值给,而不是用于每个索引的变量。
int cLocation = a < b ? 0 : 1;
array[cLocation] = c;
array[1 - cLocation] = d;