Как мне добавить список объектов с именем buffer во вложенный список объектов, не влияя на мои значения после вызова buffer.Clear (); - PullRequest
0 голосов
/ 11 июля 2020

Я хочу добавить List<Object> buffer к List<List<Object> output с output.Add(buffer).

Но когда я выполняю buffer.Clear(); сразу после того, как добавил его в свой output список, список объектов в output внезапно становится пустым.

Как я могу сохранить свои значения в output при очистке buffer на каждой итерации, и почему это вообще происходит?

 List<List<Tris>> faceSort()
{
    List<List<Tris>> output = new List<List<Tris>>(); //Output sorted list
    List<Tris> mod = constructModel(); //construct new model, gets smaller
    List<Tris> buffer = new List<Tris>();
    Vector3[] currentFace = new Vector3 [3];
    Vector3 normal = new Vector3();
    while (mod.Any())
    {
        currentFace[0] = mod[0].v1;
        currentFace[1] = mod[0].v2;
        currentFace[2] = mod[0].v3;
        normal = mod[0].normale;
        

        for (int i = 0; i < mod.Count; i++)
        {
            if(Vector3.Distance(normal,mod[i].normale)<= 0.1 && surfCheck(currentFace, mod[i].v1))
            {
                buffer.Add(mod[i]);
                mod.Remove(mod[i]);
                i--;
            }

        }
        output.Add(buffer);
        buffer.Clear();
    }
    return output;
}

Вот Отладчик после output.Add(buffer) и до нажатия Clear(); до

И здесь после выполнения buffer.Clear(); после

...