List<BillOfLading> bolList = new List<BillOfLading>();

protected void Button1_Click(object sender, EventArgs e)
{
    BillOfLading newBol = new BillOfLading("AXSY1414114");
    bolList.Add(newBol);

    newBol.BillOfLadingNumber = "CRXY99991231";
    bolList.Add(newBol);
}

我期望bolList可以容纳两个不同的对象或值,但是看来这个简单的代码无法正常工作。有任何想法吗?

结果立即数:

bolList

计数= 2
[0]:{kTracker.BillOfLading}
[1]:{kTracker.BillOfLading}
bolList [0]
{kTracker.BillOfLading}
_billOfLadingNumber:“CRXY99991231”
BillOfLadingNumber:“CRXY99991231”
bolList [1]
{kTracker.BillOfLading}
_billOfLadingNumber:“CRXY99991231”
BillOfLadingNumber:“CRXY99991231”

最佳答案

您仅创建了一个对象,并将其添加了两次。您在第一次添加和第二次添加之间修改了该对象这一事实是无关紧要的。该列表包含对您添加的对象的引用,因此以后将对其进行更改。

您需要将newBol.BillOfLadingNumber = "..";替换为newBol = new BillOfLading("..");

关于c# - 在循环中使用NEW时,将项目添加到对象的LIST <>会导致重复的对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4978989/

10-09 02:58