Estoy tratando de hacer una copia profunda de una lista genérica, y me pregunto si hay alguna otra manera de crear el método de copiado y, de hecho, copiar sobre cada miembro de a uno por vez. Tengo una clase que se ve algo como esto:Copia en profundidad de la lista <T>
public class Data
{
private string comment;
public string Comment
{
get { return comment; }
set { comment = value; }
}
private List<double> traceData;
public List<double> TraceData
{
get { return traceData; }
set { traceData = value; }
}
}
y tengo una lista de los datos anteriores, es decir List<Data>
. Lo que estoy tratando de hacer es trazar un rastro de datos del subconjunto de la Lista en un gráfico, posiblemente con alguna escala o barrido en los datos. Obviamente no necesito trazar todo en la lista porque no encajan en la pantalla.
Inicialmente traté de obtener el subconjunto de la lista utilizando el método List.GetRange()
, pero parece que debajo de List<double>
se está copiando poco en lugar de copiar profundamente. Cuando vuelvo a obtener el subconjunto utilizando List.GetRange(), obtengo datos modificados previamente, no los datos brutos recuperados en otro lugar.
¿Alguien puede darme una dirección sobre cómo abordar esto? Muchas gracias.
Skeet editado pero no sabía la respuesta? (8-O – Brad
Tal vez me esté perdiendo algo, pero ¿qué sería una "Copia profunda" de una "Lista"? Es una lista de números, no es como una lista de clases de botones o algo que tenga miembros que puedan necesitar para ser copiado? –
CodingGorilla
Supongo que quiere decir que quiere hacer una copia profunda de cada objeto 'Datos', lo que implica que necesita copiar la lista en lugar de simplemente copiar la referencia. – mquander