此代碼:什麼是計算偏移更簡潔的方法?
private int GetColumnToPopulate(int columnBase, int offset) {
int duckbillColNum = 0;
switch (columnBase) {
case 0:
duckbillColNum = 1;
break;
case 1:
duckbillColNum = 5;
break;
case 2:
duckbillColNum = 9;
break;
case 3:
duckbillColNum = 13;
break;
case 4:
duckbillColNum = 17;
break;
case 5:
duckbillColNum = 21;
break;
case 6:
duckbillColNum = 25;
break;
case 7:
duckbillColNum = 29;
break;
}
duckbillColNum += offset;
return duckbillColNum;
}
...很容易神交,但冗長和沉悶。我想簡化它。我的僞代碼想法是這樣的:
int[] colBases
{
0..7
}
int[] offsets
{
1,5,9,13,17,21,25,29
}
int idx = colBases.IndexOf(columnBase);
duckbillColNum = offsets[idx];
......或者也許是一個多維的int數組?無論如何,「IndexOf」業務當然不包括在內。
擺脫'colBases',這一切都很好 –
你有什麼嘗試?你有沒有嘗試過你的想法?這似乎不是一個經過深入研究的問題。 –
「columnBase * 4 + 1」給我留下了深刻的印象......當然,如果它足夠適合你。 –