在C#中从不同的编号变量动态分配值

时间:2014-03-31 09:40:47

标签: c#

我正在尝试对数组进行动态分配,如下所示:

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#中的问题非常相似,但是我需要一些不那么复杂的问题,因为他们只使用变量和向量来处理类和我。

有没有人知道如何以简单的方式实现它? 非常感谢!

3 个答案:

答案 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]);
            }