我读过其他类似的问题。但是,所有人都使用bash
。 IDK关于那种语言的一切。
我想做的事是:
int i=0; //Value of i will change as I want to use it in loop
string name="c"+i;
double a= name[i]; //The real name of arrays I have declared are: c0[],c1[] etc
它出错:“Project”不包含“name”的定义 那么,我该如何实现这一目标呢?
答案 0 :(得分:2)
显然,你有一组变量,所有变量都有一个共同的名称,例如: MyVariable1
,MyVariable2
等
您应该使用数组,或者在您的情况下使用数组数组,而不是使用这么多类似的变量:
var myVariableArray = new double[][] { c[0], c[1], ... };
现在您可以轻松访问该阵列中的第i个数字:
double a = myVariableArray[i][i];
另外,如果这些变量实际上是您班级中的成员(字段或属性),您还可以使用反射从字符串中获取正确的成员:
var fields = typeof(MyType).GetField(name + i);
double b[];
if(field != null)
b = (double[]) field.GetValue(instanceOfMyType, null);
else
{
var prop = typeof(MyType).GetProperty(name + i);
if(prop != null)
b = (double[]) prop.GetValue(instanceOfMyType, null);
}
a = b[i];
然而,这样的数据结构是糟糕的设计,你应该使用成员的数组(或列表),而不是有几十个类似的成员。
答案 1 :(得分:1)
你需要一组数组(二维数组),不是吗?
要创建数组数组,请执行以下操作:
test();//call it seperatly not inside any function
其中SELECT * FROM post,post_meta WHERE post.id=post_meta.post_id , post_meta.id="x";
是您想要的数组数。
现在你可以使用这样的一些数组填充它:
double[][] twoDArray = new double[][x];
要访问2D数组中的数组,您甚至不需要x
,只需直接使用twoDArray[0] = new double[] {1.0, 1.1, 1.2};
twoDArray[1] = new double[] {7.7, 8.8, 9.9};
即可!
name
或更简单:
i