C# object to array
Casting it to an ArrayList is only going to work if the object actually is an ArrayList. It wont work with a System.Array, or a System.Collections.Generic.List`1 for example.
I think what you actually should do is cast it to IEnumerable, since that is your only requirement to loop over it...
object anArray = propInfo.GetValue(instance, null);IEnumerable enumerable = anArray as IEnumerable;if (enumerable != null){ foreach(object element in enumerable) { // etc... }}
Try to cast to IEnumerable
. This is the most basic interface all enumerables, arrays, lists etc. implement.
IEnumerable myList = anArray as IEnumerable;if (myList != null){ foreach (object element in myList) { // ... do something }}else{ // it's not an array, list, ...}
Simply Try This
string[] arr = ((IEnumerable)yourOjbect).Cast<object>() .Select(x => x.ToString()) .ToArray();