枚举的字符串表示(estring)?

2023-12-19

我需要一个枚举或类似的东西来做这样的事情:

公共枚举 MyStringEnum { [StringValue("Foo A")] Foo = "A", [StringValue("Foo B")] Foo = "B" }

这可能吗?我的示例,我返回一个数据集,其值表示为 A、B、C、D、E .. 我需要一个解决方案将其返回为字符串表示形式?

我想显而易见的是创建一个扩展方法或只有一个 switch 语句并返回一个字符串的东西..还有其他更干净的解决方案吗?

问候, 戴夫


这是我们 MVC 应用程序用来检索枚举的显示名称的东西。它使用自定义属性和扩展方法来检索枚举显示名称。

[AttributeUsage(AttributeTargets.Field, AllowMultiple = false)]
public class EnumDisplayNameAttribute : Attribute
{
  public EnumDisplayNameAttribute(string displayName)
  {
    DisplayName = displayName;
  }

  public string DisplayName { get; set; }
}


public static string GetDisplayName(this Enum enumType)
{
  var displayNameAttribute = enumType.GetType()
                                     .GetField(enumType.ToString())
                                     .GetCustomAttributes(typeof(EnumDisplayNameAttribute), false)
                                     .FirstOrDefault() as EnumDisplayNameAttribute;

  return displayNameAttribute != null ? displayNameAttribute.DisplayName : Enum.GetName(enumType.GetType(), enumType);
}

枚举上的用法:

public enum Foo
{
  [EnumDisplayName("Foo Bar")]
  Bar = 0
}

取回显示名称:

var f = Foo.Bar;
var name =  f.GetDisplayName();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

枚举的字符串表示(estring)? 的相关文章

  • 注销租约抛出 InvalidOperationException

    我有一个使用插件的应用程序 我在另一个应用程序域中加载插件 我使用 RemoteHandle 类http www pocketsilicon com post Things That Make My Life Hell Part 1 App
  • 确保 StreamReader 不会挂起等待数据

    下面的代码读取从 tcp 客户端流读取的所有内容 并且在下一次迭代中它将仅位于 Read 上 我假设正在等待数据 我如何确保它不会在没有任何内容可供读取时返回 我是否必须设置低超时 并在失败时响应异常 或者有更好的办法吗 TcpClient
  • C中的malloc内存分配方案

    我在 C 中尝试使用 malloc 发现 malloc 在分配了一些内存后浪费了一些空间 下面是我用来测试 malloc 的一段代码 include
  • 使用 Newtonsoft 和 C# 反序列化嵌套 JSON

    我正在尝试解析来自 Rest API 的 Json 响应 我可以获得很好的响应并创建了一些类模型 我正在使用 Newtonsoft 的 Json Net 我的响应中不断收到空值 并且不确定我的模型设置是否正确或缺少某些内容 例如 我想要获取
  • 为什么 Google 测试会出现段错误?

    我是 Google Test 的新手 正在尝试提供的示例 我的问题是 当我引入失败并设置GTEST BREAK ON FAILURE 1 或使用命令行选项 GTest 将出现段错误 我正在考虑这个例子 https code google c
  • 从 Linux 内核模块中调用用户空间函数

    我正在编写一个简单的 Linux 字符设备驱动程序 以通过 I O 端口将数据输出到硬件 我有一个执行浮点运算的函数来计算硬件的正确输出 不幸的是 这意味着我需要将此函数保留在用户空间中 因为 Linux 内核不能很好地处理浮点运算 这是设
  • DbContext 和 ObjectContext 有什么区别

    From MSDN 表示工作单元和存储库模式的组合 使您能够查询数据库并将更改分组在一起 然后将这些更改作为一个单元写回存储 DbContext在概念上类似于ObjectContext 我虽然DbContext只处理与数据库的连接以及针对数
  • 如何检测表单的任何控件的变化?

    如何检测 C 中表单的任何控件的更改 由于我在一个表单上有许多控件 并且如果表单中的任何控件值发生更改 我需要禁用按钮 我正在寻找一些内置函数 事件处理程序 属性 并且不想为此创建自定义函数 不 我不知道任何时候都会触发任何事件any控制表
  • 如何在 Xaml 文本中添加电子邮件链接?

    我在 Windows Phone 8 应用程序中有一些大文本 我希望其中有电子邮件链接 例如 mailto 功能 这是代码的一部分
  • C#:帮助理解 UML 类图中的 <>

    我目前正在做一个项目 我们必须从 UML 图编写代码 我了解 UML 类图的剖析 但我无法理解什么 lt
  • CMake 无法确定目标的链接器语言

    首先 我查看了this https stackoverflow com questions 11801186 cmake unable to determine linker language with c发帖并找不到解决我的问题的方法 我
  • AES 128 CBC 蒙特卡罗测试

    我正在 AES 128 CBC 上执行 MCT 如中所述http csrc nist gov groups STM cavp documents aes AESAVS pdf http csrc nist gov groups STM ca
  • “接口”类似于 boost::bind 的语义

    我希望能够将 Java 的接口语义与 C 结合起来 起初 我用过boost signal为给定事件回调显式注册的成员函数 这非常有效 但后来我发现一些函数回调池是相关的 因此将它们抽象出来并立即注册所有实例的相关回调是有意义的 但我了解到的
  • 使用 %d 打印 unsigned long long

    为什么我打印以下内容时得到 1 unsigned long long int largestIntegerInC 18446744073709551615LL printf largestIntegerInC d n largestInte
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • C++ 条件编译

    我有以下代码片段 ifdef DO LOG define log p record p else define log p endif void record char data 现在如果我打电话log hello world 在我的代码中
  • 我的班级应该订阅自己的公共活动吗?

    我正在使用 C 3 0 遵循标准事件模式我有 public event EventHandler
  • 当从finally中抛出异常时,Catch块不会被评估

    出现这个问题的原因是之前在 NET 4 0 中运行的代码在 NET 4 5 中因未处理的异常而失败 部分原因是 try finallys 如果您想了解详细信息 请阅读更多内容微软连接 https connect microsoft com
  • 从列表中选择项目以求和

    我有一个包含数值的项目列表 我需要使用这些项目求和 我需要你的帮助来构建这样的算法 下面是一个用 C 编写的示例 描述了我的问题 int sum 21 List
  • 如何将 PostgreSql 与 EntityFramework 6.0.2 集成? [复制]

    这个问题在这里已经有答案了 我收到以下错误 实体框架提供程序类型的 实例 成员 Npgsql NpgsqlServices Npgsql 版本 2 0 14 2 文化 中性 PublicKeyToken 5d8b90d52f46fda7 没

随机推荐

  • 如何在 Delphi 中输入分数?

    我有一个应用程序将使用测量值 特别是小至 1 16 英寸 我真的想要一种方便的方式让最终用户输入包含小数部分的值 例如 3 7 16 我意识到我可以要求用户只输入十进制值 即 3 1875 但我真的想要一种更好的方法 有谁知道可以轻松输入的
  • 从 ArrayList 中删除所有出现的元素

    我在用java util ArrayList 我想删除所有出现的特定元素 List
  • 检索 Dynamics 2011 中的选项集

    我正在使用此代码来检索全局选项集 var request new RetrieveOptionSetRequest Name OptionsetNameGoesHere var retrieveOptionSetResponse Retri
  • 在 eclipse 中使用 mahout 而不使用 Maven

    我真的不想使用maven 因为它看起来很麻烦 有没有办法只下载 mahout 并在我的 eclipse 项目中使用它 我从使用 Maven 得到的只是构建路径错误和数百万条警告 我一直在寻找一种方法来做到这一点 但人们似乎一直都在使用 Ma
  • 四舍五入至小数点后两位

    Math round doubleValue 100 100 0 有没有更好的方法将小数四舍五入到小数点后两位 如果您对小数位以及精确的小数值感兴趣 您通常应该使用java math BigDecimal http download ora
  • Zend 实例随机丢失

    我有一个在 zend 上运行的网站 最近它表示登录时会丢失会话变量 auth Zend Auth getInstance 有时似乎不起作用任何线索可能是什么问题 None
  • Realm 中具有惰性属性的复合键

    我发现了在 Swift 中使用带有复合主键的 Realm 的绝佳解决方案 https github com realm realm cocoa issues 1192 https github com realm realm cocoa i
  • 构建过程中ASP.NET Core设置托管环境

    我有一个ASP NET Core Api我在其中使用 appsettings environmentname json 配置文件 然后 我还有带有不同环境选项的相应 launchSettings json 文件 以便我可以使用任何特定的环境
  • 设计模式或代码味道,功能分解导致的非规范化数据

    我是以下的忠实粉丝http highscalability com http highscalability com 并且一直在我当前的开发中沿着功能边界分解我的应用程序 作为能够扩展服务器端 特别是数据库层 的途径 这涉及到将应用程序的不
  • 在 Reporting Services 中向条形图添加趋势线

    如何在 Reporting Services 2005 中向条形图添加趋势线 您必须从数据源创建趋势线的数据 从图表属性的数据选项卡上 选择趋势数据系列 单击编辑 然后在 编辑图表值 对话框中选择 外观 选项卡 选中 将数据绘制为线 框 使
  • MySQL 从 3 个表中选择不同的产品

    MySQL 从 3 个表中选择 我有这 5 个表 CREATE TABLE category c id int 6 NOT NULL AUTO INCREMENT name varchar 40 NOT NULL PRIMARY KEY c
  • 在 next js 13 中使用新的“app 目录”导入 bootstrap js 文件的位置

    我在下一个 js 13 中使用新的应用程序目录 当使用 bootstrap 下拉菜单时 只有 UI 可以工作 bootstrap 的 js 功能在其中不起作用 我尝试在layout tsx中导入js文件 但它抛出了这个错误 gt 文档未定义
  • 任何巧妙的方法来修复 LINQ 的“字符串或二进制数据将被截断”警告

    有没有一种巧妙的方法来确定哪个字段导致 字符串或二进制数据将被 LINQ 截断 我总是通过逐步调试器来手动完成此操作 但是对于使用 SubmitChanges 的批处理 我必须更改代码以插入单行以在一批行中找到罪魁祸首 我是否遗漏了某些东西
  • Android 未签名应用程序无法安装在设备上

    我的应用程序可以在模拟器上运行 并将其导出为未签名的应用程序 在我的手机设置 gt gt 应用程序 gt gt 检查了未知来源 我通过 USB 将 apk 下载到手机存储中 然后在文件管理器下 我发现存储了 apk 并点击安装按钮 它尝试安
  • $watchGroup 与 $watchCollection?

    有观察一组变量的 2 种方法 https docs angularjs org api ng type 24rootScope Scope在角度 但它们之间有什么区别呢 他们似乎都做浅表 是否存在其中一种明显优于另一种的情况 watchCo
  • App Engine 部署:获取应用程序的权限错误

    我们使用服务帐户通过 Travis 将我们的应用程序部署到 App Engine 在每个合并的 PR 中 Travis 从我们的 GitHub 存储库中提取代码 并提取Docker镜像 https github com hollowvers
  • 如何使用 onFieldSubscribed 单独验证 TextFormField

    我正在制作一个自定义 TextFormField 小部件 它将被多次使用 如何验证单个 TextFormField 而不验证同一列表 行 列中的任何其他 TextFormField Widget timeTextField TextEdit
  • 为什么绘图渲染的图表在 Mozilla 上不起作用

    当我尝试在 Mozilla Firefox 中打开与knitr 放在一起的 html 文档时 出现以下错误 该错误是由以下图形元素组成的结果plotly包裹 unknownError error occurred while process
  • 在 Internet Explorer 中意外调用 JQuery UI Autocomplete focus()

    我使用 JQuery UI 创建了一个简单的自动完成控件 我的输入字段有一个默认值 输入您的关键字 我已经设置了一个focus 当用户将焦点设置到要键入的输入字段时 该事件将清除输入 在 IE 中 当您键入并且菜单显示项目列表时 当从菜单项
  • 枚举的字符串表示(estring)?

    我需要一个枚举或类似的东西来做这样的事情 公共枚举 MyStringEnum StringValue Foo A Foo A StringValue Foo B Foo B 这可能吗 我的示例 我返回一个数据集 其值表示为 A B C D