У меня есть форма, где пользователи могут изменять коллекцию объектов, используя DataGrid. Когда форма открыта, я создаю глубокую копию оригинальной коллекции, а если нажать кнопку «Отмена», я просто отбрасываю эту копию.
Проблема в том, что когда нажата кнопка ОК, я должен согласовать изменения, которые могут быть:
- Изменены свойства существующих объектов
- Новые объекты добавлены в любое место в коллекции.
- Существующие объекты удалены.
- Существующие объекты переупорядочены.
Поскольку мне нужно сохранить исходные ссылки, я не могу просто очистить коллекцию и добавить измененные элементы.
Знаете ли вы простой алгоритм, который синхронизировал бы две коллекции, подобные этой?
Я использую C # 3.5, поэтому LINQ доступен.