Hi the following code use reflection in order to convert string items to value types using the static function TryParse. using System; using System.Collections.Generic; using System.Reflection; namespace CMDLineTest { class Program { static List CommaSeparatedStringToIEnumerable(string s) { List values = new List(); Type targetConversionType = typeof(T); if (targetConversionType.IsValueType) { Type targetConversionTypeOutParamType = Type.GetType(targetConversionType.FullName + @"&"); if(targetConversionTypeOutParamType == null) throw new Exception(""); MethodInfo tryParseMethodInfo = targetConversionType.GetMethod("TryParse", new Type[] { typeof(string), targetConversionTypeOutParamType }); if(tryParseMethodInfo != null) { string[] stringsToConvert = s.Split(','); T item = default(T); object[] methodParams = new object[2]; foreach (string str in stringsToConvert) { methodParams[0] = str; methodParams[1] = item; if (((bool)tryParseMethodInfo.Invoke(null, methodParams)) == true) values.Add((T)methodParams[1]); } } } return values; } static void Main(string[] args) { List intList = CommaSeparatedStringToIEnumerable("1,2,3,4,5"); foreach (int item in intList) Console.WriteLine(item); } } }