こんにちは、私の質問をより適切に作成します。
foreachコマンドで、配列内のtemp(変数の保存)値を取得します。tempに保存する値は、datagridviewセルからのものです。
次のステップのforコマンドで、文字列と次の文字列の2つの文字列を比較します。最初の文字列が2番目の文字列よりも大きい場合は、それらの位置を変更します。しかし、問題があります。彼らは位置を変えず、空の値を取得します。なぜ彼らが空の値を取得するのか理解できません。
foreachコマンドのために空の値を取得すると思っているので、インデックス[i]は同じままですが、i = i + 1とすると、コマンドは範囲外になります。
ありがとうございました
senc。ニコ
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]);
}