对 C# 类中的属性进行排序

2024-01-02

我们需要解析的文件格式如下:

v1|000|sammy|endpoint|blah

它是供应商向我们提供的有序固定宽度格式,因此这 5 个字段中的每一个都映射到类中的特定属性(实际格式有 >30)。

我想通过将序列应用于属性来使用反射来解析它。我可以做到这一点的一种方法是自己编造一些东西 - 编写一个采用单个数字的 Attribute 类,并将该属性及其序列索引应用于每个属性,并在 OrderBy 子句中的 Reflection 期间查找它。

在 C# 中是否有现有的或更好的方法来执行此操作?例如,是否已经有一个属性?有没有办法在 C# 甚至 MSIL 中询问类中声明属性的顺序?


属性在元数据中出现的顺序可以使用以下命令查看PropertyInfo.MetadataToken http://msdn.microsoft.com/en-us/library/system.reflection.memberinfo.metadatatoken.aspx。碰巧当前编译器会使这个顺序与属性在源代码中出现的顺序相匹配,因此通过 ordering byMetadataToken,您将得到与源代码中相同的顺序。

免责声明:未来的编译器可能会改变这一点。如果没有原因,它可能不会,但是如果编译器变成多线程,则可能需要额外不必要的努力来保留原始顺序。如果您依赖于此,请确保您收到硬错误,而不是无提示的运行时损坏(如果/当 .NET Framework 以某种方式更新时导致此中断)。

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

对 C# 类中的属性进行排序 的相关文章

  • 注销租约抛出 InvalidOperationException

    我有一个使用插件的应用程序 我在另一个应用程序域中加载插件 我使用 RemoteHandle 类http www pocketsilicon com post Things That Make My Life Hell Part 1 App
  • 使用内部 setter 进行属性注入

    我正在修改一个现有应用程序以使用 Autofac 属性注入 似乎无论我使用哪种方法向属性注册类型 属性始终为 null 除非它们具有公共设置器 对于其他 IoC 容器 例如 Structuremap 可以使用 setter 内部范围并使其可
  • MVC 在布局代码之前执行视图代码并破坏我的脚本顺序

    我正在尝试将所有 javascript 包含内容移至页面底部 我正在将 MVC 与 Razor 一起使用 我编写了一个辅助方法来注册脚本 它按注册顺序保留脚本 并排除重复的内容 Html RegisterScript scripts som
  • 复制 std::function 的成本有多高?

    While std function是可移动的 但在某些情况下不可能或不方便 复制它会受到重大处罚吗 它是否可能取决于捕获变量的大小 如果它是使用 lambda 表达式创建的 它依赖于实现吗 std function通常被实现为值语义 小缓
  • 为什么调用非 const 成员函数而不是 const 成员函数?

    为了我的目的 我尝试包装一些类似于 Qt 共享数据指针的东西 经过测试 我发现当应该调用 const 函数时 会选择它的非 const 版本 我正在使用 C 0x 选项进行编译 这是一个最小的代码 struct Data int x con
  • 具有交替类型的可变参数模板参数包

    我想知道是否可以使用参数包捕获交替参数模式 例如 template
  • 我可以使用 moq Mock 来模拟类而不是接口吗?

    正在经历https github com Moq moq4 wiki Quickstart https github com Moq moq4 wiki Quickstart 我看到它 Mock 一个接口 我的遗留代码中有一个没有接口的类
  • 如何在 32 位或 64 位配置中以编程方式运行任何 CPU .NET 可执行文件?

    我有一个可在 32 位和 64 位处理器上运行的 C 应用程序 我试图枚举给定系统上所有进程的模块 当尝试从 64 位应用程序枚举 32 位进程模块时 这会出现问题 Windows 或 NET 禁止它 我认为如果我可以从应用程序内部重新启动
  • 为什么 std::strstream 被弃用?

    我最近发现std strstream已被弃用 取而代之的是std stringstream 我已经有一段时间没有使用它了 但它做了我当时需要做的事情 所以很惊讶听到它的弃用 我的问题是为什么做出这个决定 有什么好处std stringstr
  • CMake 无法确定目标的链接器语言

    首先 我查看了this https stackoverflow com questions 11801186 cmake unable to determine linker language with c发帖并找不到解决我的问题的方法 我
  • 为什么 gcc 抱怨“错误:模板参数 '0' 的类型 'intT' 取决于模板参数”?

    我的编译器是gcc 4 9 0 以下代码无法编译 template
  • 使用 %d 打印 unsigned long long

    为什么我打印以下内容时得到 1 unsigned long long int largestIntegerInC 18446744073709551615LL printf largestIntegerInC d n largestInte
  • 使用 C# 读取 Soap 消息

  • 按 Esc 按键关闭 Ajax Modal 弹出窗口

    我已经使用 Ajax 显示了一个面板弹出窗口 我要做的是当用户按 Esc 键时关闭该窗口 这可能吗 如果有人知道这一点或以前做过这一点 请帮助我 Thanks 通过以下链接 您可以通过按退出按钮轻松关闭窗口 http www codepro
  • 调用堆栈中的“外部代码”是什么意思?

    我在 Visual Studio 中调用一个方法 并尝试通过检查调用堆栈来调试它 其中一些行标记为 外部代码 这到底是什么意思 方法来自 dll已被处决 外部代码 意味着该dll没有可用的调试信息 你能做的就是在Call Stack窗口中单
  • 方法优化 - C#

    我开发了一种方法 允许我通过参数传入表 字符串 列数组 字符串 和值数组 对象 然后使用这些参数创建参数化查询 虽然它工作得很好 但代码的长度以及多个 for 循环散发出一种代码味道 特别是我觉得我用来在列和值之间插入逗号的方法可以用不同的
  • 如何部署“SQL Server Express + EF”应用程序

    这是我第一次部署使用 SQL Server Express 数据库的应用程序 我首先使用实体 框架模型来联系数据库 我使用 Install Shield 创建了一个安装向导来安装应用程序 这些是我在目标计算机中安装应用程序所执行的步骤 安装
  • C++ 条件编译

    我有以下代码片段 ifdef DO LOG define log p record p else define log p endif void record char data 现在如果我打电话log hello world 在我的代码中
  • 如何获取自定义订单的结果? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 代替ASC or DESC 我希望我的查询结果采用特定的自定义顺序 例如 如果我想要的结果不是 A B C D 而是 P A L H 该怎么
  • 从列表中选择项目以求和

    我有一个包含数值的项目列表 我需要使用这些项目求和 我需要你的帮助来构建这样的算法 下面是一个用 C 编写的示例 描述了我的问题 int sum 21 List

随机推荐

  • 用不同的颜色为每个错误栏着色

    我正在尝试绘制一个errorbar图表中 每个误差条可能是红色或绿色 具体取决于用于计算误差条的统计数据是否显着 我尝试使用颜色数组作为输入c参数 但这不起作用 有谁知道这是怎么做到的吗 这是我到目前为止的代码 yerrs np array
  • os.walk() 是否缺少目录的符号链接?

    我有一个目录 其中包含一些文件 一些目录 一些文件的符号链接和一些目录的符号链接 当我在目录中使用 followlinks false 执行 os walk 时 我会获取文件名列表中的文件和指向文件名列表中的目录的符号链接 但目录的符号链接
  • 如何在 Azure API 管理中使用 validate-jwt 策略验证使用 RS256 算法签名的 JWT

    我可以使用 HS256 成功验证 JWT 签名validate jwt通过设置 Azure API 管理中的策略
  • 无法在 ubuntu 13.04 中显示 Android 设备

    我有一台 Android 平板电脑设备 无法通过我的笔记本电脑 T61 上的 Android 设备显示 但它在具有相同操作系统 Ubuntu 13 04 的 DELL PC 上运行良好 我已将 adb 更新到最新的 platform too
  • XAML ColumnDefinition 中 *(星号)的含义是什么?

    下面的 XAML 中 星号 的含义是什么
  • CSS Border RADIUS,哪种样式才是正确的使用方式?边界半径? -webkit-边框-半径? -moz-边界半径?

    我想使用 CSS 创建漂亮的圆形边框 我知道以下 CSS 样式 border radius webkit border radius moz border radius 哪种风格最好用 您应该使用所有三个规则 这样 您的页面就可以在 Moz
  • 存储时区的合适数据类型是什么?

    我正在考虑简单地使用格式为 hh mm 或 hh mm 的字符串 这是必要且充分的吗 注意 我不需要存储日期或时间 只需存储时区 不幸的是 PostgreSQL 不提供时区数据类型 所以你应该使用text interval乍一看似乎是一个合
  • CreateDIBSection:返回值与错误

    CreateDIBSection 的文档 https msdn microsoft com de de library windows desktop dd183494 v vs 85 aspx states 如果函数成功 返回值是新的句柄
  • 在 Python 中压缩文件的更好方法(使用单个命令压缩整个目录)? [复制]

    这个问题在这里已经有答案了 可能的重复 如何使用 python 版本 2 5 压缩文件夹的内容 https stackoverflow com questions 296499 how do i zip the contents of a
  • 如何检测 SharePoint 上 ItemAdded() 事件的项目还原

    我知道当从回收站恢复项目时 会触发 ItemAdded 事件 但是 如何检测添加的项目是否来自回收站或者是否是新文件 这是一个非常古老的线程 但它出现在该主题搜索的顶部结果中 从我对 SP2010 的实验来看 它看起来像属性 AfterPr
  • 文本从下到上换行

    有人知道如何从下到上以相反的顺序换行文本吗 我附上了示例图片 https i stack imgur com RVsIG jpg https i stack imgur com RVsIG jpg 5D 我需要从下到上以某种方式制动 而不是
  • Highcharts 极坐标图:在相交区域系列上应用渐变颜色

    我正在尝试在我的 React 项目中的 Highcharts 极坐标图中的 2 个系列的相交区域应用渐变颜色 这是我的 JSFiddle 链接 https jsfiddle net pgkk s29d51zt 604 https jsfid
  • TextBlock 画笔给出的颜色不正确

    我有一个 TextBlock 和一个 Rectangle 它们都位于一个空的 WPF4 窗口中 TextBlock 的前景和矩形的 Fill 都设置为 SolidColorBrush 其值为 80800000 它看起来是这样的 矩形的颜色是
  • Paypal 沙箱 API 内部错误

    过去几个月我一直在使用 Paypal Merchant SDK 和 Sandbox 凭证 一切工作正常 但今天 我遇到了这个奇怪的问题 每当我调用 SetExpressCheckout 的 API 时 我都会得到由于内部错误 交易失败有错误
  • 授予角色时出现缺少权限错误

    我在尝试向服务器管理员授予角色时遇到问题 对于常规权限 它工作正常 但如果它是服务器管理员角色 或具有权限的其他角色 即使我是所有者 它也会给出以下错误 discord ext commands errors CommandInvokeEr
  • 快速关系数据库,可与 Python 简单使用[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 对于我的链接抓取程序 用 python3 3 编写 我想使用数据库来存储大约 100 000 个网站
  • Java 重写 hashCode() 方法有任何性能问题吗?

    如果我会覆盖hashCode 方法会降低应用程序的性能 我在应用程序的许多地方重写了这个方法 是的 如果 hashCode 方法的实现方式不好 则可能会降低散列集合的性能 hashCode 方法的最佳实现应该为唯一对象生成唯一的 hashC
  • Android webview 中的缓存

    Android webview中加载移动网页和非移动网页哪一种更快 加载缓存还是根本不加载 加载它的推荐样式是什么 现在 当我不在所有非移动网站上加载缓存时 加载速度比在本机浏览器中加载它们时要慢得多 不要使用这些 viewer getSe
  • Rails 使用什么 Ruby 技术来使我的控制器方法呈现视图?

    只是好奇是否有人知道在 Rails 框架中使用什么 Ruby 技术来完成以下任务 如果我不写 比如说 index方法在 Rails 控制器上 如果 URL 与该路由匹配 Rails 仍将呈现索引视图文件 这是有道理的 因为我的控制器继承自父
  • 对 C# 类中的属性进行排序

    我们需要解析的文件格式如下 v1 000 sammy endpoint blah 它是供应商向我们提供的有序固定宽度格式 因此这 5 个字段中的每一个都映射到类中的特定属性 实际格式有 gt 30 我想通过将序列应用于属性来使用反射来解析它