I want to delete all the elements from my list:
foreach (Session session in m_sessions) { m_sessions.Remove(session); }
In the last element I get an exception: UnknownOperation.
Anyone know why?
how should I delete all the elements? It is ok to write something like this:
m_sessions = new List<Session>();
In your SharePoint site you can go to your list and You can click on the checkbox beside the first item on the list (It should highlight all of the items) and then click on "Items" in the List Tools ribbon and you will see a delete button.
You aren't allowed to modify a List<T>
whilst iterating over it with foreach
. Use m_sessions.Clear()
instead.
Whilst you could write m_sessions = new List<Session>()
this is not a good idea. For a start it is wasteful to create a new list just to clear out an existing one. What's more, if you have other references to the list then they will continue to refer to the old list. Although, as @dasblinkenlight points out, m_sessions
is probably a private member and it's unlikely you have other references to the list. No matter, Clear()
is the canonical way to clear a List<T>
.
Never, ever, modify a collection that is being iterated on with foreach
. Inserting, deleting, and reordering are no-nos. You may, however, modify the foreach
variable (session
in this case).
In this case, use
m_sessions.Clear();
and eliminate the loop.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With