c# – 根据枚举值获取枚举名称
发布时间:2020-12-15 08:37:22 所属栏目:百科 来源:网络整理
导读:我已声明以下枚举: public enum AfpRecordId{ BRG = 0xD3A8C6,ERG = 0xD3A9C6} 我想从值中检索枚举对象: private AfpRecordId GetAfpRecordId(byte[] data){ ... } 调用示例: byte[] tempData = new byte { 0xD3,0xA8,0xC6 };AfpRecordId tempId = GetAfp
我已声明以下枚举:
public enum AfpRecordId { BRG = 0xD3A8C6,ERG = 0xD3A9C6 } 我想从值中检索枚举对象: private AfpRecordId GetAfpRecordId(byte[] data) { ... } 调用示例: byte[] tempData = new byte { 0xD3,0xA8,0xC6 }; AfpRecordId tempId = GetAfpRecordId(tempData); //tempId should be equals to AfpRecordId.BRG 我也想使用linq或lambda,只要它们可以提供更好或相等的性能. 解决方法
简单:
>将字节数组转换为int(手动,或通过创建一个四字节数组并使用 例如: private static AfpRecordId GetAfpRecordId(byte[] data) { // Alternatively,switch on data.Length and hard-code the conversion // for lengths 1,2,3,4 and throw an exception otherwise... int value = 0; foreach (byte b in data) { value = (value << 8) | b; } return (AfpRecordId) value; } 您可以使用Enum.IsDefined来检查给定数据是否实际上是有效ID. 至于性能 – 在你寻找更快的东西之前,检查一些简单的东西是否能给你足够好的性能. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- Binary XML file line #6: Error inflating clas
- c# – 对象初始化类似于List <>语法
- ddd(领域驱动设计)之架构总结
- C# 利用Aspose.word导出word--表格篇
- 动态添加综合布局---动态添加控件及将某XML动态加
- Ajax帖子被firefox中止(在Chrome或IE中看不到)
- c# – MonoTouch / MonoDroid中的Debug.WriteLin
- [教程] Flash Socket通信的安全策略问题 843端口
- 4.4 函数的输入输出inout参数解析 [Swift原创教程
- c# – 如何处理像Mongo这样的文档数据库中单独存
热点阅读