MyItems 목록이 있습니다. MyItem은 동료를 참조 할 수도 있고 참조하지 않을 수도 있습니다.C# 상호 참조 목록
List<MyItem> myList = new List<MyItem>();
myList.add(...) //add all 8 items
myList[1].RefTo = myList[3];
myList[5].RefTo = myList[2];
myList[7].RefTo = myList[5];
Item 0
Item 1 ----+
+---> Item 2 |
| Item 3 <---+
| Item 4
+--- Item 5 <---+
Item 6 |
Item 7 ----+
전체 목록의 복제본을 만들어야합니다. 새 목록의 모든 MyItem은 이전 목록의 MyItems (참조하지 않음)의 새 사본이며 새 목록의 모든 참조는 새 목록의 항목을 가리켜 야합니다. 그러면 새 목록은 이전 목록에서도 작동하고 이전 MyItem은 완전히 삭제됩니다.
MyItem.Clone()을 호출하여 항목을 복제 할 수 있도록 MyItem에서 ICloneable 인터페이스를 구현했습니다. 그러나 복제 된 복사본은 여전히 이전 목록의 MyItems를 참조합니다.
MyItems의 참조를 새 목록의 개체로 업데이트하려면 어떻게해야합니까? 샘플 코드는 대단히 감사하겠습니다.
나는 거의 당신이 목록을 복제해야하는 거라면 궁금하네요 포함 원하는대로 RefTo 필드가 복제 된 복사본에 보존됩니다 일단 각 객체는 직렬화이기 때문에, 목록의 항목이 아닙니다 ... – Daryl