The nameof operator allows you to get the name of a variable, type or member in string form without hard-coding it as a literal.
var myVar = "ABC";
Console.WriteLine(nameof(myVar));
Source: https://riptutorial.com/csharp/example/363/basic-usage--printing-a-variable-name
Edited:
In your above approach, since you are directly mapping variables to an object, There is no way to figure out the variable that was used to set a element, unless you save that information in a separate array or collection (For debug purpose)
var test = 1;
var test2 = "2";
var array = new object[]{test, test2};
var arrayOfArrays = {
new {Name = nameof(test), Array=test}
, new {Name = nameof(test2), Array=test2}
};
foreach (var p in arrayOfArrays) {
Console.WriteLine(p.Name);
...
}