我有一个接受的类型列表中的参数功能如下:使List变量的副本在C#中的相关问题
private decimal CalculateIRR(List<AmortizationDepotResult> lstAmortizationDepotResult, decimal carryAmount)
{
if (lstAmortizationDepotResult.Count > 0)
{
var lstLoanDepots = lstAmortizationDepotResult.ToList();
lstLoanDepots.First().Payment = carryAmount;
在上面的代码中,我只是想改变第一对象的参数值(Payment)
在列表中。如果我执行上面的代码,carryAmount
值得到反映lstAmortizationDepotResult
以及lstLoanDepots
也。 但我不想更改lstAmortizationDepotResult
中的值,它只应反映在lstLoanDepots
。 那么我该如何解决我的问题?
谢谢..
那么如何制作副本? –
这不完全是* list *的问题,但列表包含对相同对象的引用。因此,当您执行'lstLoanDepots.First()。Payment = ...'时,您正在更改'lstLoanDepots'的第一个对象,该对象也出现在其他列表中。如果你想让每个列表都有独特的对象,你也需要复制/克隆这些对象。 –
为什么我得到减点?我有没有犯过错误? –