I have a list with some old values that I want to delete, but it throws a System.InvalidOperatonException saying the collection was changed after creating an object. If I don't use the else statement, it is working all right.
foreach (var item in list) // here is exception
{
    if (DateTime.Parse(item.Key.ToShortDateString()) > DateTime.Parse("12.09.2020"))
    {
        panel.Controls.Add(new Label()
        {
            Text = item.Key.ToString().Remove(10) + "\n" + item.Key.ToString().Remove(0, 10) + "\n" + item.Value.ToString(),
            AutoSize = true
        });
        month.AddBoldedDate(item.Key);
    }
    else
    {
        list.Remove(item.Key); // I want to delete an old element
    }
}
How can I fix this problem?
 
     
     
     
    