从枚举中获取值到通用列表

sl3*_*dg3 7 c# vb.net generics

我不知道如何将以下行从VB转换为C#:

Dim values As New List(Of T)(System.Enum.GetValues(GetType(T)))
Run Code Online (Sandbox Code Playgroud)

我的版本不起作用:

List<T> values = new List<T>(System.Enum.GetValues(typeof(T)));
Run Code Online (Sandbox Code Playgroud)

'System.Collections.Generic.List.List(System.Collections.Generic.IEnumerable)'的最佳重载方法匹配有一些无效的参数

构造函数参数不会这样 - 我丢失了什么演员(或其他)?

澄清:它包含在以下通用方法中

public static void BindToEnum<T>()
{
    List<T> values = new List<T>(System.Enum.GetValues(typeof(T)));
    //...
}
Run Code Online (Sandbox Code Playgroud)

sll*_*sll 13

使用LINQ:

List<T> list = System.Enum.GetValues(typeof(T))
                          .Cast<T>()
                          .ToList<T>();
Run Code Online (Sandbox Code Playgroud)


Mag*_*nus 5

只需添加一个.Cast<T>()

List<T> values = new List<T>(System.Enum.GetValues(typeof(T)).Cast<T>());
Run Code Online (Sandbox Code Playgroud)