1

我有以下代码将 ac# 枚举转换为 javascript 对象,但这些类型对代码不可见并导致编译时错误。星星里面的类型是问题,我想我需要将类型传递给 linq 表达式,但我有股票,有人知道怎么做吗?

public static string EnumToJsObj(Enum enumType)
{
    Type type = enumType.GetType();
    string strJS = string.Format("{{{0}}} ",
        string.Join(", ", Enum.GetNames(type).ToList().ConvertAll(key =>
        {
            return string.Format("{0} : {1}", key, (int)((***type***)Enum.Parse(typeof(***type***), key)));
        }).ToArray()));
}
4

2 回答 2

3

像这样的东西?

public static string EnumToJsObj(Enum enumType)
{
    Type t = enumType.GetType();
    return new JavaScriptSerializer().Serialize(
            Enum.GetNames(t).ToDictionary(e => e, e => (int)Enum.Parse(t,e))
    );
}
于 2013-05-23T12:03:15.823 回答
0

您可以使您的方法成为通用方法:

public static string EnumToJsObj<T>(Enum enumType){ ... }

或者您可能能够摆脱使用System.Convert.ChangeType而不是类型转换。

于 2013-05-23T11:58:24.810 回答