gpt4 book ai didi

c# - 将字典枚举键渲染为命名值

转载 作者:行者123 更新时间:2023-11-30 21:36:31 28 4
gpt4 key购买 nike

我有一个看起来像这样的枚举:

public Enum MyEnum {EnumA = 0, EnumB = 10, EnumC = 20}

我还有一个字典模型,我希望在我的 Razor View 中使用它,我想在其中将字典的键分配给一个 javascript 数组,如下所示:

var myArray = @Html.Raw(Json.Encode(Model.Keys.ToArray()))

这导致 myArray = [0,10,20] 非常接近我想要的。我想添加枚举的“文本”值而不是数值,如下所示:myArray = ["EnumA","EnumB","EnumC"]

当显示单个枚举字段时,@Html.DisplayFor 可用于将数值转换为枚举“文本”值。

有没有办法让我的键以相同的方式转换,而不必遍历它们并手动将它们添加到数组中?

最佳答案

你可以试试这个:

var values = Model.Keys.ToArray().Select(val => val.ToString());
var myArray = @Html.Raw(Json.Encode(values));

如果键仍然是 MyEnum 类型,那么它们应该自动表示为枚举值的名称。

如果还是不行,你也可以试试这个:

var values = Model.Keys.ToArray().Select(val => ((MyEnum)val).ToString());
var myArray = @Html.Raw(Json.Encode(values));

这假设如果您的键不是 MyEnum 类型,它们至少是整数。

请注意,如果键中的值与定义的 MyEnum 值不对应(例如,如果您定义了值 1-4 并且键为 17),您仍然会得到键值作为数字字符串。

关于c# - 将字典枚举键渲染为命名值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48083518/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com