В настоящее время у меня есть довольно простой метод, который вычисляет список CurveValue (настраиваемый объект), проблема в том, что мне нужно вычислить параметр и передать десятичное число обратно без фактического изменения параметра.
Я попытался добавить AddRange () в новый объект, чтобы это не повлияло на кривую параметров, но похоже, что ссылка все еще существует, и после выполнения ForEach () изменились как curve, так и curveA.
Я предполагаю, что на него все еще есть ссылка, но есть ли простой способ сделать это, не перечисляя кривую параметров и не добавляя ее в кривую A?
public decimal Multiply(List<CurveValue> curve, decimal dVal)
{
List<CurveValue> curveA = new List<CurveValue>();
curveA.AddRange(curve);
curveA.ForEach(a => a.Value = decimal.Round(a.Value, 4) * dVal);
return Sum(curveA);
}
public decimal Sum(List<CurveValue> curveA)
{
return curveA.Sum(x => x.Value);
}