我有一个带有两个数组的小应用程序。一个数组是名称,一个数组是分数。我在“排序”按钮中有以下代码。还有6个单选按钮按不同方式排序。其中5个按钮有效,但我似乎无法通过“地区名称”工作得到排序。有时当我在数组中输入两行时,它有效,有时则不然。我一直试图弄清楚这一近一个小时,但似乎无法弄清楚为什么它不起作用。那里有什么想法吗?
private void btnSort_Click(object sender, EventArgs e)
{
int n;
decimal temp;
int sortCol = 0;
string ntemp;
bool swapFlag;
if (rb1.Checked)
sortCol = 0;
if (rb2.Checked)
sortCol = 1;
if (rb3.Checked)
sortCol = 2;
if (rb4.Checked)
sortCol = 3;
if (rbTotal.Checked)
sortCol = 4;
do
{
swapFlag = false;
for (n = 0; n < lastIndexUsed; n++)
{
if(quarters[n,sortCol] < quarters[n+1, sortCol])
{
//column 4
temp = quarters[n, 4];
quarters[n, 4] = quarters[n + 1, 4];
quarters[n+1, 4] = temp;
//col 3
temp = quarters[n, 3];
quarters[n, 3] = quarters[n + 1, 3];
quarters[n + 1, 3] = temp;
//col 2
temp = quarters[n, 2];
quarters[n, 2] = quarters[n + 1, 2];
quarters[n + 1, 2] = temp;
// col 1
temp = quarters[n, 1];
quarters[n, 1] = quarters[n + 1, 1];
quarters[n + 1, 1] = temp;
//col 0
temp = quarters[n, 0];
quarters[n, 0] = quarters[n + 1, 0];
quarters[n + 1, 0] = temp;
//name
ntemp = Branch[n];
Branch[n] = Branch[n + 1];
Branch[n + 1] = ntemp;
swapFlag = true;
}//endif
}//for end
} while (swapFlag);
答案 0 :(得分:1)
黑暗中的一个镜头:你说你有六个单选按钮,但你只检查了五个并按此分配了排序列。如果你的五种工作正常,一种不是,也许你省略了按钮?
很难判断这是否真的存在问题。这些字段的名称非常不清楚 - 在您看来是“单选按钮6”还是“按区域名称排序的按钮”?为的含义命名。