这是我的清单:
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;
}
答案 0 :(得分:2)
根据您向我们显示的内容,我认为您正在rate_list = new RateList(…)
之类的上方创建rate_list,并将其设置为days.multiplier = rate_list;
中所有时间。由于您没有为每个元素重新创建该rate_list,因此只要您在dayExists中的某一天对其进行更改,您也将为所有其他元素都对其进行更改。
因此,您应该执行以下操作days.multiplier = new RateList(…);