在 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# 中向变量名称添加数字中,这是一个非常相似的问题,但我需要一些不太复杂的东西,因为它们正在使用类,而我只处理变量和向量。
有没有人知道如何以简单的方式实现它?多谢!
无法使用
反射来读取函数的局部变量。只能读取类的字段和属性。
因此,如果不将变量提升到类中的字段,就不可能实现您的要求。
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]);
}