C#数组不要在for循环中工作

时间:2017-03-04 18:10:21

标签: c# arrays loops for-loop

我的代码:

DataTable dt = fs.DataTable;
int columnsNumber = dt.Columns.Count;
string[] array = new string[columnsNumber];

for (int k=0; k==columnsNumber; k++)
{ 
    array[k] = dt.Columns[k].ColumnName;
}


foreach (var item in array)
{
    MessageBox.Show(item);
}

MessageBox已显示空白消息。

如果我运行此代码,没问题;

array[1] = dt.Columns[1].ColumnName; 
array[2] = dt.Columns[2].ColumnName; 
array[3] = dt.Columns[3].ColumnName;

这项工作。有什么问题?

5 个答案:

答案 0 :(得分:2)

您的cicle只是检查 k == kolonSayisi

for (int k=0; k==kolonSayisi; k++)
{ 
    array[k] = dt.Columns[k].ColumnName;
}

我认为你应该这样写:

for (int k=0; k < columnsNumber; k++)
{ 
    array[k] = dt.Columns[k].ColumnName;
}

答案 1 :(得分:2)

您已在[{1}} ==中添加了for loop运算符,您应该使用<

更改

for (int k=0; k==kolonSayisi; k++)

for (int k=0; k<kolonSayisi; k++)

答案 2 :(得分:1)

你也可以这样使用

var listToArray = new listToArray<string>();
foreach (DataColumn dataCol in dt.Columns)
    listToArray.Add(dataCol.ColumnName);
listToArray.ToArray();

希望它有所帮助。

答案 3 :(得分:0)

您可以这样使用:

TestClass1
      - testmethod1()
      - testmethod2()
      - testmethod3()
      - testmethod4() 
TestClass2
          - testmethod11()
          - testmethod22()
          - testmethod33()
          - testmethod44()

答案 4 :(得分:0)

for循环的工作方式如下:

在括号中,第一部分定义计数或增量变量并设置起始值。第二部分是取消条件。你可以这样读:如果condition为false则停止循环。第三部分定义了步长,以及如何增加变量。

现在,如果您查看条件k==columnsNumber,您正试图检查k是否等于该数字。在k为0的第一次迭代中,如果columnsNumber不为0,则返回false。因此,循环将停止。