![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| slavaentp |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 17.6.2008 Репутация: нет Всего: -1 |
Я как-то написал прогу, где когда нажимаешь клавишу какую-то, добавляется один элемент в List<int>, затем некоторые вещи с ним проделываются, после чего добавленный элемент удалялся(RemoveAt).
Это происходило очень часто, и я заметил, что программа стала конкретно тормозить. Я вначале не понимал в чём дело, а потом выяснил, что это именно из-за того, что я удалял элемент из списка. Правильно ли я понимаю, что из List<T> лучше не удалять ничего, т.к. при частом обращении будет тормозить? Или всё-таки можно удалять элементы списка, не теряя при этом значительно скорости? |
|||
|
||||
| Exai1e |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 908 Регистрация: 3.12.2006 Где: Moscow Репутация: 4 Всего: 30 |
slavaentp, только что сделал тестовую программу, удаляю элементы, ничего не тормозит, да и не должно ничего тормозить) ошибка видимо где у вас в другом месте
-------------------- "Решение зависит от выбранного геморроя" © Snowy "у нас как в армии - либо работает, либо так и задумано" |
|||
|
||||
| slavaentp |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 17.6.2008 Репутация: нет Всего: -1 |
Я тоже не понял, почему тормозило, просто это было по факту. Причём тормозило не всегда. Там две переменные изменялись, цифра увеличивалась на 1 при нажатии клавиши. Одну клавишу нажмёшь - ints[0] увеличится, другую - ints[1] увеличится, две всего. Так когда одну увеличивал, тормозов не было, а когда другую - были. А удалялась третья переменная ints[2], которая учатсвовала в расчёте первых двух. Я абсолютно не понимаю логику того глюка, но он был и факт ,что когда я убрал RemoveAt, то есть перестал удалять третью переменную, он исчез. Надеюсь, что-нибудь понятно Это сообщение отредактировал(а) slavaentp - 29.11.2009, 22:43 |
|||
|
||||
| Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 5 Всего: 24 |
slavaentp, а зачем были эти танцы с бубном? чем было оправдано в твоем случае использование такого элемента как List<int>? можно было просто массив или структуру сделать, или даже просто объявить три переменные...
|
|||
|
||||
| DenWPF |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
ну в одном он прав, при удалении должно тормозить, ЛИСТ это же просто наш добрый массив, и его надо переписать и записать в новый.
БРЕД - то что я написал выше=) лист, это связный список и при удалении одной переменой просто перезаписывается один адрес. |
|||
|
||||
| PashaPash |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 9 Всего: 49 |
||||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | .NET для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |