Удаление объектов из Списка (T) в сбое vb.net

У меня есть универсальный список, что я удаляю объекты из использования List.Remove(Object). Я удалял объекты, но каждый раз, когда я добираюсь до пятого объекта, я удаляю его сбои и не удаляю его из списка. Это, кажется, не имеет значения, что я удаляю, но каждый раз я пытаюсь удалить пять объектов, которые это приводит к сбою на пятом объекте.

Что могло вызывать это? Рассмотрение документации для List(Of T).Remove, это не указывает, какой алгоритм они используют для удаления объекта.

5
задан KyleMit 3 March 2014 в 15:06
поделиться

4 ответа

Remove будет соответствовать на основе вызова .Equals для ваших объектов. По умолчанию для данного объекта он будет соответствовать только тому же объекту . Если вы хотите, чтобы два объекта с одинаковыми свойствами считались равными, даже если они не являются одним и тем же объектом, вам необходимо переопределить метод Equals и поместить туда свою логику.

Однако есть еще один хороший вариант заключается в использовании RemoveAll и передаче анонимного делегата или лямбда-выражения с критериями, которые вы ищете. Например:

customers.RemoveAll(customer => customer.LastName.Equals(myCustomer.LastName));

Конечно, это работает только в том случае, если вы действительно хотите удалить все совпадающие элементы и / или если вы уверены, что найдется только один подходящий.

12
ответ дан 18 December 2019 в 14:47
поделиться

If you are using an indexed based method to remove items from the list and remember that the indexes of items after the one you remove will change by -1 as you remove the ones before it.

2
ответ дан 18 December 2019 в 14:47
поделиться

How many items are in your list? How are you removing them, just looping through? Keep in mind these are 0-based lists. If you're doing any sort of For loop with an integer it may not work as you're removing items.

0
ответ дан 18 December 2019 в 14:47
поделиться

If you are using for loop to remove elements, you should consider using the foreach, it is more suitable for collections, lists and numerable objects

-1
ответ дан 18 December 2019 в 14:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: