for loop skipping items C# : I have the below for loop 

                    int listCount = _itemCollection.Count;
                    foreach (int i=0;i<listCount;i++)
                    {
                     var item = _itemCollection[i]; // just to prevent changes in all places inside the for loop
                     if(item['expirydate']>today){
                         item.delete();
                         listCount--; //as I am removing 1 item, I am decrementing count
                      }    
                    }

In this for loop, I am iterating through the items in itemcollection and deleting some of them. i.e item will be removed from itemcollection array and  so itemcollection.count will be reduced by 1

This is not deleting the 3rd item every time, when I have 3 items to delete

I am not sure what condition should be used for getting it right