I have a problem with elements in my list.
My code:
List<Rack> racksUKL;
List<Rack> racksUKLDraft;
var result = xlsxToList.NewListUKL(textBoxSequenceExecution.Text);
racksUKL = result.Item1;
racksUKL = racksUKL.OrderBy(x => x.Date).ToList();
racksUKLDraft = racksUKL;
Debug.WriteLine(racksUKL.Count());
for (int i = 0; i < racksUKLDraft.Count - 2; i += 2)
{
    for (int j = 0; j < racksListMatrix.Count - 1; j++)
    {
        if (racksUKLDraft[i + 1].TruckNo == racksListMatrix[j].TruckNo
            && racksUKLDraft[i].TruckNo == racksListMatrix[j + 1].TruckNo
            && racksUKLDraft[i + 1].TruckPosition == racksListMatrix[j].TruckPosition
            && racksUKLDraft[i].TruckPosition == racksListMatrix[j + 1].TruckPosition
            || racksUKLDraft[i + 1].TruckNo == racksListMatrix[j].TruckNo2
            && racksUKLDraft[i].TruckNo == racksListMatrix[j + 1].TruckNo2
            && racksUKLDraft[i + 1].TruckPosition == racksListMatrix[j].TruckPosition
            && racksUKLDraft[i].TruckPosition == racksListMatrix[j + 1].TruckPosition)
        {
            markUKL(racksUKLDraft[i].Id);
            markUKL(racksUKLDraft[i + 1].Id);
            racksUKLDraft.RemoveAt(i);
            racksUKLDraft.RemoveAt(i);
            if (i >2)
            {
                i -= 2;
            }
            break;
        }
    }
}
Debug.WriteLine(racksUKL.Count());
And the "makrUKL" void:
void markUKL(int id)
        {
            for (int i = 0; i < racksUKL.Count; i++)
            {
                if (racksUKL[i].Id == id)
                {
                    racksUKL[i].IsSequence = true;
                    break;
                }
            }
        }
As you can see, in loop I do change in some elements in "racksUKL". But, before loop, in "racksUKL" list I have 336 elements, but after 148 elements.
Why when I change element, it's removed from list?
 
    