Có cách nào dễ dàng về cơ bản chỉ nhận bản sao dữ liệu thay vì tham chiếu bằng phương pháp này không? Tôi đã cố gắng. ToArray(). Trường hợp() nhưng dường như vẫn vượt qua một tham chiếu.Cách lấy bản sao dữ liệu thay vì tham chiếu bằng linq/lambda trong C#?
Ví dụ:
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;
}
Cố gắng thực hiện [IClonable] (http://msdn.microsoft.com/en-us/library/system.icloneable%28v=VS.100%29.aspx) theo loại ob. Sau đó, bạn có thể sử dụng 't.Where (c => c.name ==" hello "). Đầu tiên(). Clone()'. –