【发布时间】:2019-02-11 05:56:31
【问题描述】:
这是我的清单:
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;
}
【问题讨论】:
-
试试
dayExists.multiplier[0].rate_multiplier = 1; -
欢迎来到 StackoverFlow。请take the tour
-
它仍在更新 PayRateDaysModel 中所有项目的 rate_multiplier 值
-
我只想更新 dayExists 的值,但它会更新整个 PayRateDaysModel
-
只有当代码在循环中运行并且您没有在循环中设置中断以便一旦设置一次就不会再次设置乘数的值时,才会发生这种情况。跨度>