I have an object called SampleObject that holds an array of strings called StringArray. In order for me to access the first element in that array I need to write:
((string[])(SampleObject))[0]
However if I were to not know the type of the array how would I be able to approach this?
((SampleObject.GetType())(SampleObject))[0];
I tried something like this but it expects a method name.
Thanks.
You can use Array.GetValue - all array types are derived from Array, whatever the element type is. You may need to think carefully about rectangular arrays though, and arrays with a non-zero lower bound.
While Jon's answer is correct, you can abuse array co-variance, provided you have a normal (one dimensional, starting at 0) array of reference type.
return ((object[])SampleObject)[3];
Return the 3rd element in the array. You can also cast it to a non-generic IList if it not only will change the element type, but possibly the container itself.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With