На первую итерацию записывается значение 2, а не 1
На вторую итерацию 3, т.е первая итерация вообще пропускается, также 1 элемент списка имеет id = 3 и 2ой элемент списка имеет id = 3
Т.е у всех элементов в списке перезаписываются id на id текущей итерации.
class Checker
{
public int id;
public List<Checker> list = new List<Checker>();
public void add()
{
list.Add(this);
}
}
class Check
{
Checker checker = new Checker();
public void test()
{
int[] ints = { 1, 2, 3 };
foreach (int i in ints)
{
checker.id = i;
checker.add();
}
}
}