Here is my code: An ArrayList of ArrayList that returns a float:
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;
}
It gives me the following error:
error CS0021: Cannot apply indexing with [] to an expression of type
`object’
I already did the casting, what is wrong? 🙁
The problem is that
paredes[i]returns anobjectwhich is the return type of theArrayListindexer. You need to cast this to anArrayListto be able to access it:A better solution though is to use generics and populate a
List<float>instead:then
paredesis aList<List<float>>and your accessor can be changed to: