IEnumerable>结构解析通用解决方案(支持指定属性顺序)

一、前言

类似如下字符串

"ID", "NameValue", "CodeValue", "ExchangeTypeValue", 6, "invalid"

"ID2", "NameValue2", "CodeValue2", "ExchangeTypeValue2", 6, "invalid"

.......

有可能是文件中存在的,或者调用其他程序返回的结构化数 据,那么该如何解析?当其他场景中,只是返回顺序(属性顺序)变了,类结构还是一样,又如何应对?当有 很多类似场景时,是不是该抽象出一个泛型方法来应对该场景?当然,也不仅仅于上述情况,可能返回的结构 是确定,只是形式不一样,这个过程这里暂时省略,因为正则表达式完全能够解析出来。要用以下的方法,必 须转换成IEnumerable<IEnumerable<string>>结构, IEnumerable<IEnumerable<string>>结构中IEnumerable<string>为一个对象所有的值, 总体是多个对象的值集合。本文中用反射写的(关于IL操作的后续文章提供),相关的类图如下:

二、ResultTransfer的具体实现

ResultTransfer主要用于对 IEnumerable<IEnumerable<string>>结构的解析,另外还可以指定params string[] propertyNames属性参数列表来确定解析顺序(也即是属性顺序),主要方法如下:

public static IList<T> Parse<T>(IEnumerable<IEnumerable<string>> entityRows, params string[] propertyNames) where T : new()

第一个参数 entityRows为对象列表值集合。

第二个参数propertyNames为可选参数,输入该参数 后,如果propertyNames中存在相关属性,则按照propertyNames对应的属性顺序进行解析。否则按照提供的T 类中属性的DataMemberAttribute来确定属性顺序进行解析。

时间: 2024-08-04 12:44:26

IEnumerable&gt;结构解析通用解决方案(支持指定属性顺序)的相关文章

业务安全通用解决方案——WAF数据风控

业务安全通用解决方案--WAF数据风控 作者:南浔@阿里云安全 "你们安全不要阻碍业务发展"."这个安全策略降低用户体验,影响转化率"--这是甲方企业安全部门经常听到合作团队抱怨.但安全从业者加入公司的初衷绝对不是"阻碍业务发展",那么安全解决方案能否成为"业务促进者",而非"业务阻碍者"呢?答案是肯定. 安全和业务接耦,对客户透明的安全产品,如防火墙.IDS.WAF等就很少遭受到类似的吐槽. 但回归到互联

树形结构 解析-json树形结构解析的方法

问题描述 json树形结构解析的方法 [ { "id": "1", "pid": "0", "name": "1989-01-12", "children": [ { "id": "2", "pid": "1", "name": "企划分部二", &

LINQ to Entities 不支持指定的类型成员“CHECK_DATE”。只支持初始值设定项、实体成员和实体导航属性。

问题描述 LINQtoEntities不支持指定的类型成员"CHECK_DATE".只支持初始值设定项.实体成员和实体导航属性.说明:执行当前Web请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息.异常详细信息:System.NotSupportedException:LINQtoEntities不支持指定的类型成员"CHECK_DATE".只支持初始值设定项.实体成员和实体导航属性.源错误:行65:varquer

业务安全通用解决方案--WAF数据风控

业务安全通用解决方案--WAF数据风控       "你们安全不要阻碍业务发展"."这个安全策略降低用户体验,影响转化率"--这是甲方企业安全部门经常听到合作团队抱怨.但安全从业者加入公司的初衷绝对不是"阻碍业务发展",那么安全解决方案能否成为"业务促进者",而非"业务阻碍者"呢?答案是肯定.安全和业务接耦,对客户透明的安全产品,如防火墙.IDS.WAF等就很少遭受到类似的吐槽. 但回归到互联网业务安全场景

H.264码流结构解析

from:http://wenku.baidu.com/link?url=hYQHJcAWUIS-8C7nSBbf-8lGagYGXKb5msVwQKWyXFAcPLU5gR4BKOVLrFOw4bX5nWwGxQ9d1-kj0JYvAZA5-wz7KmW4tYeF_qmS1FNyV2e   H.264码流结构解析 1. H.264简介 MPEG(Moving Picture Experts Group)和VCEG(Video Coding Experts Group)已经联合开发了一个比早期研

获取 $_SERVER[&quot;REQUEST_URI&quot;] 值的通用解决方案

在 PHP 众多预定义服务器变量中,$_SERVER["REQUEST_URI"] 算是经常用到的,但是这个变量只有 apache 才支持,因此,我们需要一个更加通用的方式来获取 REQUEST_URI 的值,本文就是结束这一问题的解决方案. 代码 <?php       // 说明:获取 _SERVER['REQUEST_URI'] 值的通用解决方案       function request_uri()      {       if (isset($_SERVER['RE

复制表结构的通用存储过程

复制表结构的通用存储过程 --Transfer对象的重要属性 --1.属性 属性名 类型 描述 ------------------------------------------------------------------------ CopyAllDefaults Boolean 所有默认值 CopyAllObjects Boolean 所有对象 CopyAllRules Boolean 所有规则 CopyAllStoredProcedures Boolean 所有存储过程 CopyAl

逆天通用水印支持Winform,WPF,Web,WP,Win10。支持位置选择(9个位置 ==》[X])

常用技能:http://www.cnblogs.com/dunitian/p/4822808.html#skill 逆天博客:http://dnt.dkil.net 逆天通用水印扩展篇~新增剪贴板系列的功能和手动配置,卸除原基础不常用的功能:http://www.cnblogs.com/dunitian/p/5377097.html 好几天没上QQ了,今天上了个QQ,,额....额...貌似消息还挺多,没及时回复的还请见谅~~刚好昨天无聊把水印这快封装出来了,支持图片水印,文字水印,索引图水印和

nginx泛解析里面如何在指定二级

问题描述 nginx泛解析里面如何在指定二级 我的域名在DNS解析里面设置了泛解析,因为我要解析这个域名的二级域名比较多,如果一个一个天津比较麻烦,所以用了泛解析.但是在nginx中如何这是我想那些二级域名能被访问到,我没有设置的二级域名访问时就无法访问,我的所有二级域名在这个文件里http://tianjinshi.foxdb.cc/sitemap.html ,除了这个文件的二级域名访问网站都显示无法访问,该如何处理呢?