C # copia automática automática de la estructura

Tengo una estructura,MyStruct, que tiene un miembro privadoprivate bool[] boolArray; y un métodoChangeBoolValue(int index, bool Value).

Tengo una clase,MyClass, eso tiene un campopublic MyStruct bools { get; private set; }

Cuando creo un nuevo objeto MyStruct a partir de uno existente, y luego aplico el método ChangeBoolValue (), la matriz bool en ambos objetos cambia, porque la referencia, no a lo que se hizo referencia, se copió en el nuevo objeto. P.ej:

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

¿Hay una manera de forzar una copia para implementar una copia más profunda, o hay una manera de implementar esto que no tenga el mismo problema?

Específicamente hice de MyStruct una estructura porque era un tipo de valor, y no quería que las referencias se propagaran.

Respuestas a la pregunta(5)

Su respuesta a la pregunta