简化此数组插入代码的方法?
Way to simplify this array insertion code?
如果我有这个代码:
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;
}
但是比较冗长。
我是不是遗漏了什么明显的东西?
计算要将变量分配给的索引,而不是为每个索引使用哪个变量。
int cLocation = a < b ? 0 : 1;
array[cLocation] = c;
array[1 - cLocation] = d;
如果我有这个代码:
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;
}
但是比较冗长。
我是不是遗漏了什么明显的东西?
计算要将变量分配给的索引,而不是为每个索引使用哪个变量。
int cLocation = a < b ? 0 : 1;
array[cLocation] = c;
array[1 - cLocation] = d;