JSON, , , .
, , . , , .
, Json.net , :
public static T Clone<T>(this T source)
{
if (Object.ReferenceEquals(source, null))
return default(T);
return JsonConvert.DeserializeObject<T>(JsonConvert.SerializeObject(source));
}
( ), , , BinaryFormatter: ( , [Serializable])
public static T Clone<T>(this T source)
{
if (Object.ReferenceEquals(source, null))
return default(T);
using (var stream = new MemoryStream())
{
var formatter = new BinaryFormatter();
formatter.Serialize(stream, source);
stream.Position = 0;
return (T) formatter.Deserialize(stream);
}
}
:
foreach(var car in CarsA)
{
CarsB.Add(car.Clone<Car>());
}
:
List<Car> CarsB = CarsA.Clone<List<Car>>();