internal static Type GetArrayOrListElementType(Type listType)
{
if (listType.IsArray)
{
return listType.GetElementType();
}
if (listType.IsGenericType && (listType.GetGenericTypeDefinition() == typeof(List<>)))
{
return listType.GetGenericArguments()[0];
}
return null;
}