C#列表项值不一致
我正在向列表中添加值,它将使用新指定的值替代上一个值。我想这与引用类型和值类型有关C#列表项值不一致,c#,C#,我正在向列表中添加值,它将使用新指定的值替代上一个值。我想这与引用类型和值类型有关 class EODSales { public string Sales { get; set; } public int TC { get; set; } public decimal Amount { get; set; } } class EODBO { public string Sales { get; set; } public List<EODSal
class EODSales
{
public string Sales { get; set; }
public int TC { get; set; }
public decimal Amount { get; set; }
}
class EODBO
{
public string Sales { get; set; }
public List<EODSales> Values { get; set; }
}
.
.
.
.
List<EODSales> EODSalesList = new List<EODSales>();
List<EODBO> eodboList = new List<EODBO>();
.
.
.
//Inside a method -
EODSales sales = new EODSales();
sales.Sales = "Prev";
sales.TC = 5;
sales.Amount = 500;
EODSalesList.Add(sales);
EODBO obj = new EODBO();
obj.Sales = "Baking Order";
obj.Values = EODSalesList;
eodboList.Add(obj);
//Inside another method
EODSales sales = new EODSales();
sales.Sales = "Prev";
sales.TC = 10;
sales.Amount = 1000;
EODSalesList.Add(sales);
EODBO obj = new EODBO();
obj.Sales = "Refund";
obj.Values = EODSalesList;
eodboList.Add(obj);
class-EODSales
{
公共字符串Sales{get;set;}
公共int TC{get;set;}
公共十进制数{get;set;}
}
类EODBO
{
公共字符串Sales{get;set;}
公共列表值{get;set;}
}
.
.
.
.
List EODSalesList=新列表();
List eodboList=新列表();
.
.
.
//在方法内部-
EODSales sales=新EODSales();
sales.sales=“Prev”;
sales.TC=5;
销售额:金额=500;
EODSalesList.Add(销售);
EODBO obj=新的EODBO();
obj.Sales=“烘焙订单”;
对象值=EODSalesList;
eodboList.Add(obj);
//在另一种方法中
EODSales sales=新EODSales();
sales.sales=“Prev”;
sales.TC=10;
销售额。金额=1000;
EODSalesList.Add(销售);
EODBO obj=新的EODBO();
obj.Sales=“退款”;
对象值=EODSalesList;
eodboList.Add(obj);
我希望我的eodboList是这样的:列表中的第一项有Sales=“Baking Order”,值有“Prev”、5和500。而我在列表中的第二项有Sales=“return”,值分别有“Prev”、10和100。
我当前的代码只是将EODBO.值分配给列表中的所有其他项,这意味着我的第一个项烘焙顺序的值为“Prev”、10和100
更新
我将EODBO中的值更改为
公共EODSales值{get;set;}
这是我的密码
您正在对eodboList中的所有项目使用EODSalesList,快速修复:
class EODSales
{
public string Sales { get; set; }
public int TC { get; set; }
public decimal Amount { get; set; }
}
class EODBO
{
public string Sales { get; set; }
public List<EODSales> Values { get; set; }
}
.
.
.
.
List<EODSales> EODSalesList = new List<EODSales>();
List<EODBO> eodboList = new List<EODBO>();
.
.
.
//Inside a method -
EODSales sales = new EODSales();
sales.Sales = "Prev";
sales.TC = 5;
sales.Amount = 500;
EODSalesList.Add(sales);
List<EODSales> localEODSalesList = new List<EODSales>();
localEODSalesList.Add(sales);
EODBO obj = new EODBO();
obj.Sales = "Baking Order";
obj.Values = localEODSalesList;
eodboList.Add(obj);
//Inside another method
EODSales sales = new EODSales();
sales.Sales = "Prev";
sales.TC = 10;
sales.Amount = 1000;
EODSalesList.Add(sales);
List<EODSales> localEODSalesList = new List<EODSales>();
localEODSalesList.Add(sales);
EODBO obj = new EODBO();
obj.Sales = "Baking Order";
obj.Values = localEODSalesList;
eodboList.Add(obj);
class-EODSales
{
公共字符串Sales{get;set;}
公共int TC{get;set;}
公共十进制数{get;set;}
}
类EODBO
{
公共字符串Sales{get;set;}
公共列表值{get;set;}
}
.
.
.
.
List EODSalesList=新列表();
List eodboList=新列表();
.
.
.
//在方法内部-
EODSales sales=新EODSales();
sales.sales=“Prev”;
sales.TC=5;
销售额:金额=500;
EODSalesList.Add(销售);
List localEODSalesList=新列表();
localEODSalesList.Add(销售);
EODBO obj=新的EODBO();
obj.Sales=“烘焙订单”;
obj.Values=localEODSalesList;
eodboList.Add(obj);
//在另一种方法中
EODSales sales=新EODSales();
sales.sales=“Prev”;
sales.TC=10;
销售额。金额=1000;
EODSalesList.Add(销售);
List localEODSalesList=新列表();
localEODSalesList.Add(销售);
EODBO obj=新的EODBO();
obj.Sales=“烘焙订单”;
obj.Values=localEODSalesList;
eodboList.Add(obj);
这有点不清楚,你能花点时间更好地解释你想要什么和什么不起作用,以及想要的输出吗?也许把它放到一个简单的控制台应用程序中,演示它并共享代码?我忽略了一些东西,几秒钟前我刚刚解决了这个问题。我将在一个会议上分享我的解决方案,我所做的事情证明我以前的解决方案是错误的。这就是我要找的!谢谢np,很高兴这有帮助。
class EODSales
{
public string Sales { get; set; }
public int TC { get; set; }
public decimal Amount { get; set; }
}
class EODBO
{
public string Sales { get; set; }
public List<EODSales> Values { get; set; }
}
.
.
.
.
List<EODSales> EODSalesList = new List<EODSales>();
List<EODBO> eodboList = new List<EODBO>();
.
.
.
//Inside a method -
EODSales sales = new EODSales();
sales.Sales = "Prev";
sales.TC = 5;
sales.Amount = 500;
EODSalesList.Add(sales);
List<EODSales> localEODSalesList = new List<EODSales>();
localEODSalesList.Add(sales);
EODBO obj = new EODBO();
obj.Sales = "Baking Order";
obj.Values = localEODSalesList;
eodboList.Add(obj);
//Inside another method
EODSales sales = new EODSales();
sales.Sales = "Prev";
sales.TC = 10;
sales.Amount = 1000;
EODSalesList.Add(sales);
List<EODSales> localEODSalesList = new List<EODSales>();
localEODSalesList.Add(sales);
EODBO obj = new EODBO();
obj.Sales = "Baking Order";
obj.Values = localEODSalesList;
eodboList.Add(obj);