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>();
You aren’t allowed to modify a
List<T>whilst iterating over it withforeach. Usem_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_sessionsis probably a private member and it’s unlikely you have other references to the list. No matter,Clear()is the canonical way to clear aList<T>.