按名称排序(按字母顺序排列)

时间:2011-10-17 00:36:55

标签: c#

我有一个带有两个数组的小应用程序。一个数组是名称,一个数组是分数。我在“排序”按钮中有以下代码。还有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);

1 个答案:

答案 0 :(得分:1)

黑暗中的一个镜头:你说你有六个单选按钮,但你只检查了五个并按此分配了排序列。如果你的五种工作正常,一种不是,也许你省略了按钮?

很难判断这是否真的存在问题。这些字段的名称非常不清楚 - 在您看来是“单选按钮6”还是“按区域名称排序的按钮”?为的含义命名