You can achieve this with 'foreach:
ListBox.SelectedObjectCollection selListItems = listBox1.SelectedItems;
foreach (var itm in selListItems.OfType<string>().ToList())
{
listBox1.Items.Remove(itm);
}
By converting the ListBox SelectedItems from ListBoxObjectCollection to List<string>, you can iterate and remove without the collectio modification error.
You could also use
selListItems.OfType<object>().ToList()
in the 'foreach loop.