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

本文关键字:编号 变量 动态 赋值 | 更新日期: 2023-09-27 17:55:29

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

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**;
}
我已经看到,在 C# 中向变量

名称添加数字中,这是一个非常相似的问题,但我需要一些不太复杂的东西,因为它们正在使用类,而我只处理变量和向量。

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

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

无法使用

反射来读取函数的局部变量。只能读取类的字段和属性。

因此,如果不将变量提升到类中的字段,就不可能实现您的要求。

int[] vars = {10, 100, 1000};
double[] arr = new double[3];
for (int i = 0; i < 3; i++)
{
    arr[i] = vars[i];
}
            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]);
            }