我正在尝试对数组进行动态分配,如下所示:
int var_1 = 10;
int var_2 = 100;
int var_3 = 1000;
int[] arr = new int[3];
for (int i = 0; i < 3; i++)
{
arr[i] = var_**i**;
}
我已经看到Adding a number to variable names in C#中的问题非常相似,但是我需要一些不那么复杂的问题,因为他们只使用变量和向量来处理类和我。
有没有人知道如何以简单的方式实现它? 非常感谢!
答案 0 :(得分:0)
int[] vars = {10, 100, 1000};
double[] arr = new double[3];
for (int i = 0; i < 3; i++)
{
arr[i] = vars[i];
}
答案 1 :(得分:0)
无法使用Reflection读取函数的局部变量。您只能读取类的字段和属性。
因此,如果不将变量提升为类中的字段,就无法实现您的要求。
答案 2 :(得分:0)
int var_1 = 10;
int var_2 = 100;
int var_3 = 1000;
int[] arr = new int[3];
var dict = new Dictionary<string, int>
{
{ "var_1", var_1 },
{ "var_2", var_2 },
{ "var_3", var_3 }
};
Random rand = new Random();
for (int i = 0; i < 3; i++)
{
var suff = rand.Next(1, 4);
arr[i] = dict["var_" + suff];
}
for (int i = 0; i < 3; i++)
{
Console.WriteLine(arr[i]);
}