C # cópia profunda automática de struct

Eu tenho uma estruturaMyStruct, que tem um membro privadoprivate bool[] boolArray; e um métodoChangeBoolValue(int index, bool Value).

Eu tenho uma aulaMyClass, que tem um campopublic MyStruct bools { get; private set; }

Quando eu crio um novo objeto MyStruct de um objeto existente e, em seguida, aplico o método ChangeBoolValue (), o array bool em ambos os objetos é alterado, porque a referência, não o que foi referido, foi copiada para o novo objeto. Por exemplo:

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

Existe uma maneira de forçar uma cópia a implementar uma cópia mais profunda, ou existe uma maneira de implementar isso que não terá o mesmo problema?

Eu especificamente fiz MyStruct uma estrutura porque era tipo de valor, e eu não queria que as referências fossem propagadas.

questionAnswers(5)

yourAnswerToTheQuestion