Будет работать как ObservableCollection. Быстро и без гемороя.
Вопрос. Будет ли это вам интересно и на сколько часто вам приходиться синхронизировать новую коллекцию со старой в ваших проектах?
Топ штука вообще-то, частенько нужно
звучит, как да-я-сам-такой-велосипед-напишу, но по факту, конечно, интересно
в смысле да-я-сам - это про себя 🙂
Я пробовал, тот еще геморой. Особенно когда список должен динамически меняться.
Можно взять Heckel со свифта. Скорее всего проще будет и быстрее переписать
Уже взял Маерса с AndroidX
а это универсальное решение с таргетом .NET Standrd?
Да, полностью. С конкретной версию пока не уверен, но думаю большенство старых .net планформ будут поддерживаться
Да, было бы очень интересно. Мне для синхронизации коллекций хватало ObservableCollection, но вариант с DiffUtil конечно кажется более гибким. Кстати знаю либу, которая что-то похожее делает, решая задачу наибольшей общей подпоследовательности: https://github.com/praeclarum/ListDiff Может пригодится) Тегните меня, пожалуйста, как выложите
Спасибо за ссылку, интересная библиотека. Раньше ее не находил. Единственный момент, она не поддерживает перемещения 🙂
А ваш вариант, кстати, возвращает IEnumerable и внутри себя делает yield continue/return?
Думал над этим. Конечно хочу именно так и сделать, для оптимизациии. Но там суть в том, что некоторые события могут отправляться пачками. На пример если добавили 10 элементов, то CollectionChanged будет вызван всего 1 раз. То есть все шаги считаются сразу. Но я уверен, и из этой ситуации можно найти выход и оптимизировать все под yield
Проверил библиотеки. Моя либа на 10% быстрее без поиска перемещений и на 10% медленней с поиском перемещений 🙂 Ну и еще ListDiff не умеет обьеденять одинаковые операции в пачки 🙂
круто, жду на посмотреть)
Обсуждают сегодня