В C #, если объект в списке добавляется в другой список, изменяет ли объект во втором списке тот же объект в первом списке?
Скажи, у меня есть списокPerson
объекты (List<Person>
) называетсяpersons
, как это:
class Person
{
public int PersonId { get; set; } // Unique ID for the person loaded from database
public string Name { get; set; }
}
// In a different class
public List<Person> Persons = new List<Person>(); // Person objects are subsequently added to the list
а затем я выбираю некоторые изPerson
объекты из списка, сортируйте их по свойству (например, по уникальному идентификатору каждого человека)PersonId
), и добавьте эти выбранныеPerson
объекты в другой список под названиемselectedPersons
.
Теперь мне нужно отредактировать свойстваPerson
объект, который находится вselectedPersons
, но эти изменения должны быть сделаны в оригинальной копии этогоPerson
объект вpersons
, В настоящее время я знаю только индекс этого человека вselectedPersons
список, такмогу ли я просто отредактировать человека вselectedPersons
список и иметь изменения, внесенные в это лицо, отражены в оригиналеpersons
список, как это:
selectedPersons[selectedPersonIndex].Name = "John";
или жея должен редактировать оригиналPerson
объект вpersons
список сначала найдя индекс человекаpersons
список с использованием идентификатора человека, как это:
persons[FindPersonIndexById(selectedPersons[selectedPersonIndex].BookingId).Name = "John";
гдеFindPersonIndexById
возвращает индекс человека вpersons
чей ID совпадает с данным ID.
Я знаю, списки являются ссылочными типами в C #, но,когда объекты из одного списка добавляются в другой список, я не был уверен, будут ли изменения, внесенные в объекты во втором списке, автоматически вноситься в те же объекты в первом списке.