private static Type GetItemType(System.Collections.IEnumerable list) { Type enumerableType = list.GetType(); Type enumerableItemType = null; if (IsEnumerableType(enumerableType)) { enumerableItemType = GetEnumerableItemType(enumerableType); } if ((enumerableItemType == null) || (enumerableItemType == typeof(object))) { IEnumerator enumerator = list.GetEnumerator(); if (enumerator.MoveNext() && (enumerator.Current != null)) { return(enumerator.Current.GetType()); } } return(enumerableItemType); }