鉴于此 example :
// 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)
};
我试过这样的:
for (int i = 0; i < dtable.Rows.Count; i++)
{
DataRow drow = dtable.Rows[i];
arrayOfCars[] = new car(drow["make"].ToString(), drow["year"].ToString());
}
如何在循环遍历数据表时向数组添加额外数据?
更新 1:
我采用了@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());
}
最佳答案
数组一旦创建就无法添加元素。不使用数组,而是使用 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)
};
然后你可以这样做:
for (int i = 0; i < dtable.Rows.Count; i++)
{
DataRow drow = dtable.Rows[i];
listOfCars.Add(new car(drow["make"].ToString(), drow["year"].ToString()));
}
您可以使用 listOfCars
就像你会使用一个数组,并通过索引访问元素:
car myCar = listOfCars[3];
如果您必须有一个数组,请在完成“添加到列表”后通过在列表上调用 ToArray() 创建它:
// ... Add as above...
car[] arrayOfCars = listOfCars.ToArray(); // Creates an array from your list
编辑:
如果您只是尝试从 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());
}
关于c# - 使用 for 循环将自定义对象分配给数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3039980/