Re[53]: MS забило на дотнет. Питону - да, сишарпу - нет?
От: vdimas Россия  
Дата: 12.09.21 06:20
Оценка:
Здравствуйте, Sinclair, Вы писали:

V>>Вариант на FindChildV, который немного подшаманил.

S>Тоже не лучше — много вызовов в this[int]:

Это вызов локальной ф-ии Return, которая вызывается в нескольких местах.

Мне вообще не нравится решение с отдельным Bunch _indices — делаются лишние проверки лишнего Span.
Можно объединить индексы с данными в одной структуре.

И не нравится разделение узлов на листья и ветки — вводится виртуальность.

Можно попробовать убежать от виртуальности за счёт лишней опциональной ссылки node в кажой ячейке:
https://sharplab.io/#v2:EYLgxg9gTgpgtADwGwBYA0AXEBDAzgWwB8ABAJgEYBYAKGIAYACY8gOgBEBLbAcwDsJcGDmFwBuGvSasAcgFd8MKMLETGzFgCVZvIQpYBhCPgAOHADaKAyooBuwmCtprWWnRz0BJHYojHrUOzAHcScpTW1dGBYvDCVeXGUQyXVXSOidOISRFgANAA4kJMZLAAtsKGMAGWxgcLcFIrDOHn5BZQMIDOwwDEcaAGJeWTMzGosGGF4xmAYaGgB6eYBtACkODABxScVhAAoMAE9jGAgAM12AIW0wEoAeC4gEW8qYbFPpCAATGFuOHQA+NAMP4Yf7/ACU4IAujQlpZYrIetUDhBZBhdsjURgANJ/T4sawAR1kkyE2DM0JoIMUUzMDEEUERGAYV14N1uABV/jQAN40BgC4HeKC0oXMgD6kAiIUFs2osupIvJDA5DHFn2wGGwdBlgsVotV6s12HIIX6xigPHw2AYAHdyrw/twGJ8OLhpgx9JY6KgAJz8vXCg1qjVa0i6gX65WG0PYADMEbFNOjIeNKETUbpMeNAFYM0GU0atYUA5GC1nU1qAOz5jDJitF7B5Wv1lWV7C+ltKhuxgCCXeDjYuA8Lsf0I57xrYE7bjYAojPs1qAGJmi1Wm32kVOhiwQTQGZen0of3ywWLYhx3cwU5tjAlN1LEFC74IKEAXn+sFvAFkYPhoAOH9ylwMozAMWBNRgSxjGwXhdm/ds6CBcgkHBJ9eFfKEQgAXzmahMykJAmFIFlrhKOcEGZPkzwFVZ1i2XgdjAfYjhOc4QUhGFaKYK9mGIxDVQ8Ot8E5f4EJvBh7zdMi2TuLkmGIaTcCBZ88RgBBwQYT9r1vABVeI3iiXtPk+CTb2IJSH1wFhG2Ql8NPBEJYTWTZtiUFjDmOM5dk4ykeMvIjdOvbBPk6MwDjbDRXk+AB5XgIuE/8xN83gpOs2T2QUyzlNUnQHM07T/mCgz3VOYzTPMhhSqMlhe1waLzhy6zbNjOhwTy18nPw2V6LcpiPNY7yOJ0LjS14oKYLgsSGHqqbeBSxDlMy+Tiuat0tJ0v8AKgICQLAiDXjreaqvWmy7KBM7bKlUbcPwvrGOYob2NSjAxoI8t6QRHoGDnDIDhmmjZUCtTMI0xNAtVGxyRJCGrw+b4xIAfgYfhvmcnjCMgsKEsihGfgU/H9BKGAwAAaxgT4BR5OVZV6v97y+DwTDMXYGZKJmWdi4whE6Gze24bg9wSGwYC8Mw/idfy6cFbgYGZHS0ZgJGUfvKAIFtVGYE1rxX1itFYtODQ4Llyigh5jhOl2bqeLw6g7Zchj3L2LyXr87iyAYfHAfG1l2T+2IAa5YrxWhswST6AKr0Q7Hwsi1VlIw5l1LfBgabl6jxtlLPBRjmK44YaGoELmGHG04LQ9LyOZcjc4w4j1rjToFgU+098CvBHOZeIKsK/rhxG61Zv+4xmuxWBcvTS7hhIHiZP8r9kpLA4AAvGZ29QmVp9OaBdlECfbhW5e14YAAyU+S/DgfotC+LEpE3zwRbsGEAYQ+U/3jgAGov60nk7bHtPDgHE35H1XjATuPFZRAzHrnSSsdcYl2LqSXa5dEL9xsjfOKuMkr4EfomQBUCa7AN2Cgg4z9Xxtw7rTWB3de6ITISwEePVaHBQQRFJBDALQwBsAHVB7d0FV00DFO+BxcG+QYHABg5AbasM4Urcu3DeH/RYETEm5NKYEOIS/curcpFKL4eQvR0itF0OCkrDCWFTEMAdkQgUasNZax1i/fWGBDbG14KbBA5tebwVkYKHCdtbEPWdp5NiPl3YSFIszfAaJpiVDdBgH2mN8qSlRDoRMhiZrinVhADAo9BSBTzqFAuCdrJJwKlCIqcjp6IVbu+dujBz5qhusyYqjAUaIRyRAPJTDS4MBABXXJGBVFfBgMTUmFNPiWI0pI6R2EaB2yAA===

Разве что рекурсию при вызове Node.get_Item[index] можно заменить на цикл.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.