Элементы общего списка одинаковы - PullRequest
0 голосов
/ 15 ноября 2018

Я заполняю список моим объектом (Event).
У объекта есть поле с именем DocumentDate, которое я хочу обновить в каждом элементе.Но после цикла все элементы в списке одинаковы!Я хочу знать, почему:

Код:

private List<Events> CreateEventsBetween(string start, string end, string repeatState, Event defaultEvent)
{
    var states = Resources.GetStringArray(Resource.Array.repeat_states);
    DateTime.TryParse(start, out DateTime dtStart);
    DateTime.TryParse(end, out DateTime dtEnd);
    List<Event> events = new List<Event>();

    if (repeatState == states[0])
        while(dtStart<= dtEnd)
        {
            var e = defaultEvent;
            e.DocumentDate = dtStart;
            events.Add(e);

            dtStart= dtStart.AddDays(i);
        }
    ...
    ...
    ...

    return events;
}

Здесь каждый элемент в списке событий имеет одинаковые DocumentDate, когда они должны иметь разные

1 Ответ

0 голосов
/ 15 ноября 2018

Потому что все события имеют одинаковую ссылку. Вы назначаете это в var e = defaultEvent;.

Вместо этого вам нужно инициализировать другое с помощью new:

var e = new Event{ DocumentDate = dtStart }; // other properties as well
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...