in my C# program, I need to cast an object to a IEnumerable<object>. All I know about that object is, that it is a list (Type.IsGenericType):
IEnumerable<object> iEnu = myObject as IEnumerable<object>;
if (iEnu != null)
foreach (object o in iEnu)
// do stuff
As long as the type of the list is not a primitiv, it works fine, as all classes inherit from object. But primitives doesn't. Therefore, the cast to IEnumerable<object> returns null. I'd need to cast to IEnumerable<int>, if it's a list of integer, to IEnumerable<bool> if it's a list of booleans and so on. Naturally, i want just one generic cast.
Any idea, what to do to get the primitive lists as well?

Just use IEnumerable instead of IEnumerable<object>; although an int[] doesn't implement IEnumerable<object>, it does implement IEnumerable:
IEnumerable enumerable = myObject as IEnumerable;
if (enumerable != null)
{
foreach (object o in enumerable)
{
// do stuff
}
}
See more on this question at Stackoverflow