Stored old data getting erased with new data?

I’m currently working on a game and ran into a problem of storing my old data for the mesh which would be used later. Here’s the code snippet.

private List<Vector2> prevOldUVs;

private void SubDivChunkPre(){
     List<Vector2> UVtoStore = oldUVs; //the oldUVs is where the current set of UVs are
     if(subChunk == true){
          prevOldUVs = UVtoStore;
          Debug.Log("BEFORE "+oldUVs.Count+" oldUV.Count "+prevOldUVs.Count+" prev.Count");
          ChunkFaces = SubDivideChunk(); //this goes and subdivides vertces and uvs(oldUVs)
          Debug.Log("AFTER "+oldUVs.Count+" oldUV.Count "+prevOldUVs.Count+" prev.Count");
          updateChunkMesh(); //goes and updates the chunk with new data
     }
}

The problem is in THAT line alone. the prevUV List is not added to, modified or even mentioned in the SubDivideChunk(). For some reason it copies everything in the oldUVs List to the prevUV List and then continues to update it when I modify the oldUVs List. Am I just missing something stupidly simple? I’ve done this with the verts and the triangles list and I didn’t have any issues but the UVs just continually update the prev List.

In the debug log it says the counts are the same before the subdivision. After subdivision the prevUV list should be the same as before and the oldUVs list should be different. But they end up being what the new oldUVs list is.

Is it because the lists are not both of the Vector2 type?

Are you sure subChunk is being set to true?