Итак, проблема в том, что когда я прохожу циклы, которые я создаю, tempNumberList, а затем после того, как он входит в оператор if (true), он добавляет переменную в tempNumberList, но когда я ее добавляю, каким-то образом lineVarList также добавляет эту переменную к себе. .
Я не знаю, что даже искать. Я не думаю, что это очень сложно, но я понятия не имею, что происходит.
if (checkedNumbersResult)
{
finalResult.MaximumNumber = pyramidNumbers.First().First();
finalResult.NumbersInLine.Add(pyramidNumbers.First());
AssignmentResult notBranchingResults = new AssignmentResult
{
MaximumNumber = pyramidNumbers.First().First(),
NumbersInLine = new List<List<int>>()
};
foreach (var pyramidNumberList in pyramidNumbers.Skip(1))
{
List<List<int>> tempNumberList = new List<List<int>>();
foreach (var lineVarList in finalResult.NumbersInLine)
{
List<int> tempVarlist = lineVarList;
for (int varListItem = 0; varListItem < lineVarList.Count(); varListItem++)
{
if (true)
{
tempVarlist.Add(pyramidNumberList.Skip(varListItem).First());
tempNumberList.Add(tempVarlist);
}
}
}
}
}