有没有办法使现有的类字段的集合?C#,制作类字段的集合
我有一个有很多字段/属性的类有很多有意义的名字。
class ExampleClass
{
public string meaningfulName1 { get; set;}
public double meaningfulName2 { get; set;}
...
public myOtherClass meaningfulNameN { get; set;}
}
我需要从外部(不是我的)程序中生成的文件读取这些属性的值。
由于有很多字段/属性,读取值并逐一分配它们似乎效率低下。所以我想要这些字段/属性的集合。类似于
foreach (fieldReference in ExampleClass.fieldReferenceCollection)
{
readValueFromFile(fieldReference);
}
但是,如何保持所有名称?
使用所有参数值而不是单独的字段进行集合看起来合乎逻辑,但是字段名称将会丢失。而且,考虑到字段的数量,如果可能的话,我们希望保留这些名称以简化进一步的开发。
所以我需要单独的字段/属性和它们的集合在同一时间可用。
字典集合并不是很快,afaik,因此参数名称作为值的键似乎也不完全适合。
我发现的另一个选择是反射,但我不确定如何确定反射集合中的字段顺序。字段顺序作为文件非常重要,我正在读取值,没有元数据,只是一系列十六进制值。反射似乎对于从文件中读取值来说是过分的,而且它也很慢,afaik。
所以问题是:我应该怎么做才能同时拥有类字段和它们的集合呢?
我的假设是错误的这项任务?有没有其他方法可以将文件中的大量哑值读入复杂对象?
P.S.我的第一个SO问题和英语是我的第二语言,所以我为这些错误感到抱歉。
不是假设解决方案太慢,而是写下来,看看它们是否太慢。如果他们是*然后*你可以看看如何解决这些问题,如果不是,你有你的解决方案。 – Servy
你正在阅读什么类型的文件? XML,JSON,INI?可能已经存在一个解析器,具体取决于您正在处理的内容。 – juharr
反射比磁盘I/O慢吗?我会尝试。关于订单:它不是你应该使用的东西(声明订单),只需在每个属性上添加一个属性并按顺序对它们进行订购。 –