在我的应用程序中,我从数据库中检索 3 行数据,遍历数据行以将数据分配给我的客户对象,然后将客户添加到客户集合中:
// new customer object to fill in loop and assign to collection
tracker.Customer myCustomer = new tracker.Customer();
// new customer collection object to fill later
Tracker.customerCollection myCustomerCollection = new trackerCustomerCollection();
foreach (System.Data.DataRow drRow in dsResults.Tables[0].Rows)
{
myCustomer.CustomerID = Item["CustomerID"];
myCustomer.FKBandID = Convert.ToInt32(drRow["FKBandID"]);
myCustomer.FKSectorID = Convert.ToInt32(drRow["FKSectorID"]);
myCustomer.CustomerName = Convert.ToString(drRow["CustomerName"]);
myCustomer.CustomerAddress = Convert.ToString(drRow["CustomerAddress"]);
myCustomer.CustomerPhoneNumber = Convert.ToString(drRow["CustomerPhoneNumber"]);
myCustomerCollection.Add(myCustomer);
}
问题是当我尝试使用填充myCustomerCollection
时,集合中的 3 个Customer
对象都是相同的。myCustomer
当我遍历循环时,每个实例都是不同的,但是一旦添加到myCustomerCollection
. 每个项目将与添加的最后一个项目相同。
如果有人能指出我正确的方向,我将不胜感激,我已经在 VB.NET 中毫无问题地使用了这个原则,但我现在被迫使用 C#,并且很难找到问题的根源。