C#でオブジェクトをコピーするときや比較するときは、単に=や==演算子を使用すると参照コピー(参照比較)になります。
内部の実体まで複製するコードを記載します。
オブジェクトコピー(DeepCopy)
public static void DeepCopy<T>(T src, out T dst)
{
string json = SerializeJson(src);
dst = DeserializeJson<T>(json);
}
オブジェクト比較(DeepCompare)
public static bool DeepCompare<T>(T obj1, T obj2)
{
string json1 = SerializeJson(obj1);
string json2 = SerializeJson(obj2);
return json1 == json2;
}
基本的にはobjectをstringに変換し、string同士でコピー・比較を行っています。
以上!