使用List<> 的 Add 方法时,最后一个增加的会把以前的都覆盖掉
public void AddStockOrder(ProviderStockOrder model, string userName, int userId, string DomainID,Guid orderGuid)
{
List<ProviderStockOrder> stockModeList = new List<ProviderStockOrder>();//备货单实体类集合
if (orderCode.Count > 0)
{
//循环备货订单编号集合,添加备货订单实体类集合
for (int i = 0; i < orderCode.Count; i++)
{
if (orderCode[i] != "")
{
ProviderStockOrder orderModel = new ProviderStockOrder();
//orderModel =model;
orderModel.Code = orderCode[i].ToString();
orderModel.SupplierID = supplierIDList[i];
stockModeList.Add(orderModel);
}
}
}
------解决方案--------------------
确实是这样,应该是因为List.Add这个方法加入到容器里面的是对对象的引用
C# code
List<info> list = new List<info>();
info iif = new info();
iif.i = -1;
for(int i = 0 ;i < 5;i++)
{
info ifo = new info();
ifo = iif;//不注释这句list中所有的元素都会变成和最后一个一样
ifo.i = i;
list.Add(ifo);
}
foreach(info ifo in list)
{
MessageBox.Show(ifo.i.ToString());
}
public class info
{
public int i;
}
------解决方案--------------------
每次增加的都是model,model是一个对象!!!
------解决方案--------------------
http://social.msdn.microsoft.com/Forums/zh-CN/2212/thread/12dd4a87-468d-438a-a19d-2bfcc1957783/
对于List<T>来说,如果T是引用类型,那保存的是引用,如果是值类型,保存的是值本身!