¿Existe una forma sencilla de obtener básicamente una copia de los datos en lugar de una referencia con este método? Intenté .ToArray(). Where() pero eso todavía parece pasar una referencia.¿Cómo obtener una copia de datos en lugar de una referencia usando linq/lambda en C#?
Ejemplo:
static void Main(string[] args)
{
List<ob> t = new List<ob>();
t.Add(new ob() { name = "hello" });
t.Add(new ob() { name = "test" });
ob item = t.Where(c => c.name == "hello").First();
// Changing the name of the item changes the original item in the list<>
item.name = "burp";
foreach (ob i in t)
{
Console.WriteLine(i.name);
}
Console.ReadLine();
}
public class ob
{
public string name;
}
tratar de implementar [IClonable] (http://msdn.microsoft.com/en-us/library/system.icloneable%28v=VS.100%29.aspx) por tipo de ob. Luego puede usar 't.Where (c => c.name ==" hello "). Primero(). Clone()'. –