using System.Collections.Generic;
public static class EnumUtils
public static string ToSqlNullableString<T>(this List<T> list)
where T : struct, IConvertible
throw new ArgumentException("T must be an enumerated type");
return string.Join(separator: ",", values: list.Select(_e => Convert.ToInt32(_e)));
public static void Main()
var enumList = new List<TestEnum>
TestEnum.Value0, TestEnum.Value0,
TestEnum.Value1, TestEnum.Value1,
TestEnum.Value2, TestEnum.Value2,
Console.WriteLine(enumList.ToSqlNullableString());