What I understood based on your situation: You can't do like this if al[vm] is not ArrayList:
int vm = ...; string vmName; ArrayList al = ...; vmName = al[vm][1]; You need to check what is the type of al[vm]. If you confirm it was ArryList, then try cast it first like this: vmName = ((ArrayList)al[vm])[1]; On May 12, 3:50 am, Karsten_Markmann <[email protected]> wrote: > I have now tried casting each object but the same result: > object dp = null; > string vmName; > > for (int oci = 0; oci < ocary.Length; oci++) { > oc = ocary[oci]; > mor = oc.obj; > pcary = oc.propSet; > > log.LogLine("Object Type : " + mor.type); > log.LogLine("Reference Value : " + mor.Value); > > al = clientInfo.SvcUtil.GetDecendentMoRefs(mor, > "VirtualMachine"); > > for (int vm = 0; vm <= al.Count - 1; vm++) > { > dp = (object)al[vm][0]; <------ Compiler says: > Cannot apply indexing with [] to an expression of type 'object' > vmName = (string)al[vm][1]; <------ Compiler says: > Cannot apply indexing with [] to an expression of type 'object' > //I can see in the debugger that the [1] parameter > of the al[vm] is of type string, and it's this stringvalue I need. > > Console.WriteLine(vmName); > } > > On 11 Maj, 20:40, "[email protected]" <[email protected]> wrote: > > > Cerebrus, > > > Would the item not be automatically cast to an indexable type if > > vmName were initially declared as such? > > I was working under the assumption that it would. > > > Steve-0 > > > On May 11, 12:25 pm, Cerebrus <[email protected]> wrote: > > > > An ArrayList holds objects (instances of type Object). It does not > > > enforce strong typing. Therefore, you cannot directly set the item at > > > index "i" to vmName (whatever type that variable is defined as). > > > > You will need to cast the object at position "i" to the type of object > > > at each index. Only then can it be queried further. > > > > On May 11, 5:33 pm, Karsten_Markmann <[email protected]> wrote: > > > > > Hi > > > > I am having some third party code that returns me an ArrayList. > > > > In this list there are X number of objects that each hold 2 objects. > > > > I must retrieve the object on postion [1] of each object returned in > > > > the list. > > > > > I have the following code snippet, which gives me a compiler error: > > > > Cannot apply indexing with [] to an expression of type 'object' > > > > > ArrayList al = new ArrayList(); > > > > > al = clientInfo.SvcUtil.GetDecendentMoRefs(mor, "VirtualMachine"); > > > > > for (int vm = 0; vm <= al.Count - 1; vm++) > > > > { > > > > vmName = al[vm]; > > > > > Console.WriteLine(vmName[1]); > > > > } > > > > > I am a bit stuck, solving this problem. Any help is appriciated. > > > > Kind Regards > > > > Karsten Markmann- Skjul tekst i anførselstegn - > > > - Vis tekst i anførselstegn -
