gpt4 book ai didi

c# - 无法将带 [] 的索引应用于类型 `object' 的表达式

转载 作者:可可西里 更新时间:2023-11-01 09:06:22 29 4
gpt4 key购买 nike

H这是我的代码:返回 float 的 ArrayList 的 ArrayList:

public ArrayList walls=new ArrayList(); 

public void Start()
{
walls[0] = ReturnInArrayList(279,275,0,0,90);
walls[1] = ReturnInArrayList(62,275,0,0,0);
walls[2] = ReturnInArrayList(62,275,62,0,90);
walls[3] = ReturnInArrayList(217,275,62,-62,0);
walls[4] = ReturnInArrayList(62,275,279,0,90);
walls[5] = ReturnInArrayList(41,275,279,0,0);
walls[6] = ReturnInArrayList(279,275,320,0,9);
walls[7] = ReturnInArrayList(320,275,0,-279,0);

for (int i = 0; i < walls.Length; i++) {
float a = (float)walls[i][0];
float b = (float)walls[i][1];
float c = (float)walls[i][2];
float d = (float)walls[i][3];
float e = (float)walls[i][4];
}
}

ArrayList ReturnInArrayList(float a,float b,float c, float d, float e)
{
ArrayList arrayList = new ArrayList();
arrayList.Add(a);
arrayList.Add(b);
arrayList.Add(c);
arrayList.Add(d);
arrayList.Add(e);
return arrayList;
}

它给我以下错误:

error CS0021: Cannot apply indexing with [] to an expression of type `object'

我已经做了选角,有什么问题吗? :(

最佳答案

问题是 paredes[i]返回 object这是 ArrayList 的返回类型索引器。您需要将其转换为 ArrayList能够访问它:

float a= (float)((ArrayList)paredes[i])[0];

不过,更好的解决方案是使用泛型并填充 List<float>相反:

List<float> RetornaEmList(float a,float b,float c, float d, float e)
{
return new List<float> { a, b, c, d, e };
}

然后 paredesList<List<float>>并且您的访问器可以更改为:

float a = paredes[i][0];

关于c# - 无法将带 [] 的索引应用于类型 `object' 的表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14004442/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com