Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > как удалить все null из коллекции?


Автор: Stas123 14.7.2011, 10:19
у меня есть ObservableCollection, в ней много ссылок на null.
можно ли как-то их удалить из коллекции?

Автор: jonie 14.7.2011, 11:23
пробежаться по всей коллекции и сделать RemoveAt вызов для интересующего индекса.
Ну или попросту сделать while(collection.Remove(null));

Автор: Дрон 14.7.2011, 15:07
Цитата(jonie @  14.7.2011,  12:23 Найти цитируемый пост)
пробежаться по всей коллекции и сделать RemoveAt вызов для интересующего индекса.

Только я бы ещё новичкам советовал быть внимательней smile
Вот такой, казалось бы очевидный, код будет неправильным:
Код
for(int i = 0; i < collection.Count; i++)
{
      if (collection[i] == null)
            collection.RemoveAt(i);
}

Если в коллекции идёт пара "null" подряд, то удалится только первый из них, а второй останется.

Автор: Kefir 14.7.2011, 16:30
А я больше люблю такой вариант:
Код

ObservableCollection<Blaa> c;
c.Where(o => o == null).ToList().ForEach(o => c.Remove(o));

Автор: eugene123 2.8.2011, 17:25
Код

for(int i = collection.Count - 1; i >= 0 ; i--)
      if (collection[i] == null)
            collection.RemoveAt(i);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)