C # Automatyczna głęboka kopia struktury

Mam strukturę,MyStruct, który ma prywatnego członkaprivate bool[] boolArray; i metodaChangeBoolValue(int index, bool Value).

Mam klasę,MyClass, który ma polepublic MyStruct bools { get; private set; }

Kiedy tworzę nowy obiekt MyStruct z istniejącego, a następnie stosuję metodę ChangeBoolValue (), tablica bool w obu obiektach jest zmieniana, ponieważ odwołanie, a nie to, do którego się odwołano, zostało skopiowane do nowego obiektu. Na przykład:

MyStruct A = new MyStruct();
MyStruct B = A;  //Copy of A made
B.ChangeBoolValue(0,true);
//Now A.BoolArr[0] == B.BoolArr[0] == true

Czy istnieje sposób zmuszenia kopii do zaimplementowania głębszej kopii lub czy istnieje sposób jej wdrożenia, który nie będzie miał tego samego problemu?

Specjalnie stworzyłem strukturę MyStruct, ponieważ była ona typem wartości i nie chciałem propagować referencji.

questionAnswers(5)

yourAnswerToTheQuestion