Joh*_*n M 2 c# arrays datatable .net-3.5 winforms
鉴于这个例子:
// Create an arary of car objects.
car[] arrayOfCars= new car[]
{
new car("Ford",1992),
new car("Fiat",1988),
new car("Buick",1932),
new car("Ford",1932),
new car("Dodge",1999),
new car("Honda",1977)
};
Run Code Online (Sandbox Code Playgroud)
我试过这样的事情:
for (int i = 0; i < dtable.Rows.Count; i++)
{
DataRow drow = dtable.Rows[i];
arrayOfCars[] = new car(drow["make"].ToString(), drow["year"].ToString());
}
Run Code Online (Sandbox Code Playgroud)
在循环数据表时如何向阵列添加其他数据?
UPDATE1:
我选择了@Reed提出的解决方案.
// Create the array, specifying the total length
car[] arrayOfCars = new car[dtable.Rows.Count];
for (int i = 0; i < dtable.Rows.Count; i++)
{
DataRow drow = dtable.Rows[i];
// Assign each car to the specific index within the array (arrayOfCars[i])
arrayOfCars[i] = new car(drow["make"].ToString(), drow["year"].ToString());
}
Run Code Online (Sandbox Code Playgroud)
Ree*_*sey 10
一旦创建了数组,就无法向其中添加元素.而不是使用数组,使用List<car>.这将允许您调用.Add来添加元素.
例如:
// Create an List of car objects.
List<car> listOfCars = new List<car>()
{
new car("Ford",1992),
new car("Fiat",1988),
new car("Buick",1932),
new car("Ford",1932),
new car("Dodge",1999),
new car("Honda",1977)
};
Run Code Online (Sandbox Code Playgroud)
然后你可以这样做:
for (int i = 0; i < dtable.Rows.Count; i++)
{
DataRow drow = dtable.Rows[i];
listOfCars.Add(new car(drow["make"].ToString(), drow["year"].ToString()));
}
Run Code Online (Sandbox Code Playgroud)
您可以使用listOfCars类似的方式使用数组,并按索引访问元素:
car myCar = listOfCars[3];
Run Code Online (Sandbox Code Playgroud)
如果您必须有一个数组,请在完成"添加到列表"后通过调用列表上的ToArray()创建它:
// ... Add as above...
car[] arrayOfCars = listOfCars.ToArray(); // Creates an array from your list
Run Code Online (Sandbox Code Playgroud)
编辑:
如果您只是尝试从DataTable中分配和构造数组,并且在构造之后不需要向其添加元素,则可以使用数组,如下所示:
// Create the array, specifying the total length
car[] arrayOfCars = new car[dtable.Rows.Count];
for (int i = 0; i < dtable.Rows.Count; i++)
{
DataRow drow = dtable.Rows[i];
// Assign each car to the specific index within the array (arrayOfCars[i])
arrayOfCars[i] = new car(drow["make"].ToString(), drow["year"].ToString());
}
Run Code Online (Sandbox Code Playgroud)