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?