System.Enum.GetValues:在C#中与VB不一样?

sl3*_*dg3 2 c# vb.net

我试图将以下的VB.NET转换为C#:

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

我最终得到了以下翻译,但这不起作用:

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

- >"最好的重载方法匹配{...}有一些无效的参数." 即使是http://www.developerfusion.com/tools/convert/vb-to-csharp/也会给我这个翻译.怎么了?

ono*_*nof 6

你必须施展它:

List<LanguageEnum> langs = new List<LanguageEnum>((LanguageEnum[]) System.Enum.GetValues(typeof(LanguageEnum)));
Run Code Online (Sandbox Code Playgroud)

事实上,Enum.GetValues 返回一个Array.