Hmm, I don't think there's much you can do about it. If you need a variable for each resource you will need to do what you are currently doing.
I don't think I can help you, but I see no reason for not using a dictionary for it, it's organised and not a bad practice to do it like that.
Just pointing, even when you select the variable from the array you aren't referencing to it, just to the value.
var1 = 1;
Array> Set at XY> (0,0) var1; // here the value at array(0,0) is 1
var1 > set value> 2
//here var1 = 2, but array(0,0) is still 1