私はこのクラスを持っています:
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>();
「イミディエイトウィンドウ」で値をmyCopy
変更すると、元のリストにも変更があります。
両方のリストを完全に独立させたい
私は何かを逃しましたか?