【发布时间】:2012-09-15 22:14:40
【问题描述】:
嗨,我现在更好地提出了我的问题。
在 foreach 命令中,我获得了数组中的临时(保存变量)值。我保存在 temp 中的值来自 datagridview 单元格。
在下一步中,在 for 命令中,我想比较 2 个字符串,即第一个字符串和下一个字符串,如果第一个字符串大于第二个字符串,我想更改它们的位置。但是有一个问题,他们不改变位置,他们甚至得到一个空值,我不明白为什么他们得到一个空值。
我认为由于 foreach 命令,它们得到了一个空值,索引 [i] 保持不变,但如果我输入 i = i+1,则该命令将超出范围。
谢谢
秒。尼科
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (row.Cells[i].Value == null)
{
//MessageBox.Show("This row is empty");
break;
}
if (row.Cells[i].Value != null)
{
temp = row.Cells[i].Value.ToString();
UnsortArray[i] = temp;
i = i + 1;
}
}
for (int a = 0; a < MaxZeilen; a++)
{
if (i < MaxZeilen)
{
*if (String.Compare(UnsortArray[a], UnsortArray[a + 1]) > 0)
{
UnsortArray[a] = temp;
UnsortArray[a + 1] = temp2;
temp = UnsortArray[a + 1];
temp2 = UnsortArray[a];
}*
}
}
for (int i = 0; i < MaxZeilen; i++)
{
UnsortArray[i] = SortArray[i];
MessageBox.Show(UnsortArray[i]);
}
【问题讨论】:
-
您想对所有字符串进行排序还是只是交换彼此靠近的字符串?您的代码不会对所有字符串进行排序。 {"22", "33", "11"} 将变为 {"22", "11", "33"}
-
您确定 UnsortArray 在 foreach 代码之后包含正确的字符串吗?
-
是的,有人提到对字符串进行排序。但不是用数字,用名字。比如 {"Pepsi" "Cola" "Fanta" "Orangejuice"} 应该变成(字母){"Cola" "Fanta" "Orangejuice" "Pepsi"}。我的导师说它可以用于比较,但我不确定..
-
请阅读一些关于排序算法的文章en.wikipedia.org/wiki/Sorting_algorithm
-
并且在您的 foreach 循环中,您从 1 行读取 1 个值,并且每次都是新列。没事吧?
标签: c# arrays string compare bubble-sort