我有這個類:深名單<T>的副本擴展方法
public class Person : ICloneable
{
public string FirstName { get; set; }
public string LastName { get; set; }
public object Clone()
{
return this;
}
}
擴展方法:
public static class MyHelper
{
public static IEnumerable<T> Clone<T>(this IEnumerable<T> collection) where T : ICloneable
{
return collection.Select(item => (T)item.Clone());
}
}
我想在這種情況下使用它:
var myList = new List<Person>{
new Person { FirstName = "Dana", LastName = "Scully" },
new Person{ FirstName = "Fox", LastName = "Mulder" }
};
List<Person> myCopy = myList.Clone().ToList<Person>();
當我在「immediat窗口」 myCopy
值改變,沒有在orginial列表中的變化了。
我想讓這兩個列表完全獨立
我錯過了什麼?
爲什麼你使用'ICloneable'接口?這個接口是無用的:http://stackoverflow.com/questions/536349/why-no-icloneablet。 – Steven 2012-07-31 07:13:13