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 -