Index out of bounds when comparing two lists
===

I searched all over the internet to find an answer for this. I am looping through two lists with nested for loops and removing duplicate records in first list based on three criteria. If all records in these two lists match each other, I get an out of bounds error. I assume it happens when I remove all the items from the first list, and when it finally reduces to 0, and does not have any records to loop through, but putting an if statement to check the count of the first list (if inbox_emails_filtered_contacts.Count > 0) does not help either. Please let me know if any of you can tell me why this errors out.

Outlook Add-in in C#.net
--------------------------

    for (int i = 0; i < inbox_emails_filtered_contacts.Count; i++)
    {
        for (int j = 0; j < jobbertunity_emails.Count; j++)
        {
            if (inbox_emails_filtered_contacts.Count > 0)
            {
                if ((inbox_emails_filtered_contacts[i].username == registered_user)
                    && (inbox_emails_filtered_contacts[i].from_email.ToLower() == jobbertunity_emails[j].from_email.ToLower())
                    && (inbox_emails_filtered_contacts[i].email_subject == jobbertunity_emails[j].email_subject)
                    && (inbox_emails_filtered_contacts[i].email_timestamp.ToLongDateString() == jobbertunity_emails[j].email_timestamp.ToLongDateString()))
                {
                    //Remove the duplicate email from inbox_emails_filtered_contacts
                    inbox_emails_filtered_contacts.RemoveAt(i);
                }
            }
        }
    }