値型のプロパティの参照だけを配列にしたものがほしいと思っています。

以下の様な感じでプロパティ内の値を書き換えたいのですが、なにか良い案が有りましたらご教授下さい。
インデクサはできれば使いたくありません。

var a = new A();
// ↓ 本来はNum1, Num2, Num3を書き換えたい
for(var i=0; i < 3; i++){
    a.NumArray[i] = i;
}
// ↓ 本来はStr1, Str2, Str3を書き換えたい
for(var i=0; i < 3; i++){
    a.StrArray [i] = i.ToString();
}

class A {
    public A(){
        // これでは値が入ってしまう
        NumArray = new []{Num1, Num2, Num3};
        StrArray = new []{Str1, Str2, Str3};
    }        

    public int[] NumArray;
    public String[] StrArray;

    public int Num1 { get; set; }
    public int Num2 { get; set; }
    public int Num3 { get; set; }

    public String Str1 { get; set; }
    public String Str2 { get; set; }
    public String Str3 { get; set; }
}