Обновление дочерних элементов в списке обновляет все элементы в C # - PullRequest
0 голосов
/ 11 февраля 2019

Вот мой список:

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;
}

1 Ответ

0 голосов
/ 11 февраля 2019

Исходя из того, что вы показали нам, я думаю, что вы создаете rate_list где-то выше, например rate_list = new RateList(…), и вы устанавливаете его на все свои дни в days.multiplier = rate_list;.Поскольку вы не воссоздали этот rate_list для каждого элемента, каждый раз, когда вы изменяете его в одном из ваших dayExists, вы меняете его и для всех остальных.Так что вы должны сделать что-то вроде этого days.multiplier = new RateList(…);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...