如何返回包含Enum值的字符串[]

Pat*_*k Q 0 c# arrays string enums namespaces

我想创建一个动态GUI,将所有Enum的选项列为按钮.所以,我需要一种方法将Enum类型传递给一个方法,然后返回一个包含枚举类型的所有选项的字符串数组.

例如,给定文件Foo.cs中的Enum声明:

public Enum Fruits {
    Apple,
    Orange,
    Peach
};

public class Foo { ... }
Run Code Online (Sandbox Code Playgroud)

我希望这个返回:

{ "Apple", "Orange", "Peach" }
Run Code Online (Sandbox Code Playgroud)

我经历了几种代码排列.现在我有以下但我得到一个错误" 无法找到类型或命名空间名称'enumeratedType' "

public static string[] EnumToStringArray (System.Type enumeratedType) {
    int         enumSize    =   sizeof(enumeratedType);
    string[]    enumStrings =   new string[enumSize];

    for (int i = 0 ; i < enumSize ; i++) {
        enumStrings[i]  =   enumeratedType.getValues()[i].toString();
    }

    return enumStrings;
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试做什么?我已根据此问题中的信息尝试了几次完整的重写.使用C#enum中的sentinal值(编译时枚举的大小)?但我无法让它发挥作用.

I4V*_*I4V 7

string[] names = Enum.GetNames(typeof(Fruits));
Run Code Online (Sandbox Code Playgroud)