43 votes

Supprimer tous les éléments d'une liste

Je veux supprimer tous les éléments de ma liste :

foreach (Session session in m_sessions)
{
    m_sessions.Remove(session);
}

Dans le dernier élément, j'obtiens une exception : UnknownOperation.

Quelqu'un sait pourquoi ?

comment dois-je supprimer tous les éléments ? Il est acceptable d'écrire quelque chose comme ceci :

m_sessions = new List<Session>();

14voto

Kendall Frey Points 19670

Ne modifiez jamais une collection en cours d'itération avec foreach. L'insertion, la suppression et la réorganisation sont interdites. Vous pouvez toutefois modifier la variable foreach (session dans ce cas).

Dans ce cas, utilisez

m_sessions.Clear();

et éliminez la boucle.

0voto

akbar Points 276

Essayez ceci :

m_sessions.RemoveRange ( 0 , m_sessions.Count() );

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X