这是我的清单:
public class PayRateDaysModel
{
public string day_name { get; set; }
public List<RateList> multiplier { get; set; }
}
public class RateList
{
public double start_after { get; set; }
public double rate_multiplier { get; set; }
}
当我尝试更新 PayRateDaysModel 乘数中的任何值时,它会更新 PayRateDaysModel 的所有乘数值。我只想更新当前项目。下面是我的代码:
var dayExists = daysModel.Where(x => x.day_name == day_name).FirstOrDefault();
if(dayExists==null)
{
PayRateDaysModel days = new PayRateDaysModel();
days.day_name = day_name;
days.multiplier = rate_list;
daysModel.Add(days);
}
else
{
//update
dayExists.day_name = "abc";
dayExists.multiplier.FirstOrDefault().rate_multiplier = 1;
}
根据您向我们展示的内容,我认为您正在上面的某个位置创建rate_list,例如rate_list = new RateList(…)
并且您将其设置为您所有的日子days.multiplier = rate_list;
。由于您没有为每个元素重新创建该rate_list,因此每当您在某一天更改它时,您也会为所有其他元素更改它。
所以你应该做这样的事情days.multiplier = new RateList(…);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)