Попробуйте:
// Get an array of all selected items
ListViewItem[] selectedItems = (from i in listView.Items where i.Selected select i).ToArray();
// Delete the items
foreach (ListViewItem item in selectedItems)
listView.Items.Remove(item);
РЕДАКТИРОВАТЬ
Я только что заметил, что класс ListView
уже имеет свойство SelectedItems
.Чтобы убедиться, что вы не изменяете коллекцию, для которой вы выполняете итерацию, я сначала скопирую эту коллекцию:
Кажется, что выше (с использованием AddRange
) не сработало.Я думал, что удаление элементов путем итерации по перечисляемому SelectedItems
вызовет исключение, но, очевидно, это не так.Поэтому мой исходный код кода будет изменен, чтобы соответствовать другим ответам ... извините за публикацию нефункционального кода ...