Свойство Assets
является ссылкой на список.person2.Assets = person1.Assets;
будет означать, что они совместно используют и указывают на один и тот же список, поэтому не будут разделяться.
Вы хотите сделать:
person2.Assets = new List<Asset>(person1.Assets);
(Просто собираюсь проверить эту перегрузку, ноэто должно скопировать все содержимое ) ... Да, это должно сделать это.
Если вы хотите добавить их, а не заменить, используйте это:
person2.Assets.AddRange(person1.Assets);
Вы можете получить дубликаты, однако.Вы можете сделать это, если не хотите: Linq для сущностей: Unions + Distinct
Также у вас есть дополнительная ()
- ваша первая строка должна быть просто public class Person
.