Mam listę, która zostanie wypełniona niektóre dane z operacji i przechowuje go w pamięci podręcznej pamięci. Teraz chcę kolejną listę, która zawiera pewne podrzędne dane z listy na podstawie pewnych warunków.Jak zmienić moją nową listę bez zmiany oryginalnej listy?
Jak widać w poniższym kodzie wykonuję operację na liście docelowej. Problem polega na tym, że wszelkie zmiany, które robię na liście celów, są również wykonywane na liście głównej. Myślę, że to z powodu odniesienia jest takie samo lub coś takiego.
Wystarczy, że operacja na liście docelowej nie wpłynie na dane na głównej liście.
List<Item> target = mainList;
SomeOperationFunction(target);
void List<Item> SomeOperationFunction(List<Item> target)
{
target.removeat(3);
return target;
}
Czy mówisz, że obiekty obecne na obu listach są modyfikowane? To znaczy. czy potrzebujesz Klonowania()/tworzenia ich kopii, zamiast pracować nad tymi samymi instancjami? – Oli