|
Добавление только уникальных записей в ListView
|
|||
---|---|---|---|
#18+
ListView, Details(Report) 2 столбца 1-й - порядковый номер, 2-й - номер телефона (str_add) При добавлении новой строчки добавляю key(.Name) как "key" & str_to_add и проверяю что ключ уникален (чтоб не лазить по column). Соответственно я должен проверить что комбинации "key" & str_to_add еще не существует В VB6 я поступал так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
То бишь при попытке добавить item с уже существующим ключом проскакивал по On Error Resume Next и item не добавлялся. (это работает в VB6 очень быстро) В .Net другая объектная модель, нету .key а есть .Name и он НЕ УНИКАЛЕН, т.е. подобным макаром просто будут добавляться одинаковые .Name. Да и тормознутый Try...Catch здесь не потянет (даже если б работало). Накатал было такой код: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Но тормознутость растет в геометрической прогрессии, т.е. добавление 500 итемов еще боле менее, а если 10000 - будем ждать до утра (скорее всего при добавлении каждого бегает циклом по всем предыдущим чтобы понять Is Nothing или нет). Никуда не годится. Есть идеи? М.б. немного виртуализовать? К примеру перед циклом добавить все имеющиеся ключи в Collection (м.б. в Dictionary?), добавлять их параллельно в эту коллекцию(словарь) и наличие проверять через них (а не дергать ListView)? Какой инструмент в .Net быстро работает? Dictionary вроде в .Net быстрый. Как то с картинкой по пикселям мудрил. VB6 тормозил, .Net летал. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2015, 02:10 |
|
Добавление только уникальных записей в ListView
|
|||
---|---|---|---|
#18+
Вот так попробовал: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
10000 записей за пару секунд добавляет, повторное добавление того же списка (т.е. ничего не добавляется, только проверка) - мгновенно, т.е. 2 сек уходят на собственно добавление в ListView -это нормально. 50000 записей - секунд 10 на глаз. Сойдет. Dictionary видимо не по теме. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2015, 02:44 |
|
|
start [/forum/topic.php?fid=20&fpage=87&tid=1401619]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
others: | 344ms |
total: | 459ms |
0 / 0 |