如何使用LinQ To Object把数组或DataTable中的数据进行向上汇总
最近搞造价系统时遇到一些需要汇总的指标数据
类似下面的结构
指标A1000
指标B500
指标C500
指标A=B+C
当我们需要对这些数值进行校验时,实现的方法有很多种,数据库里写存储过程去更新每行数据,
或者我们在程序中遍历等等,但用起来都挺烦琐的。
这时候想到了LinqToObject这个技术
简单说下Linq它是.NetFramework3.5引入的新技术
它允许编写C#或者VisualBasic代码以查询数据库相同的方式操作内存数据。
主要有几点好处简单和SQL的语法差不多举个例子来说
这里有两个数组需要你找出A与B都存在的元素
A=int[]{1,2,3,4,5,6,7,8,0};B=int[]{2,4,7,8,9}
一般我们会这么写
如果使用Linq的话
看起来非常的清爽,而且和SQL的语法类似我们可以快速的掌握。
至于具体的语法和介绍大家可以自行的查询http://msdn.microsoft.com/zh-cn/library/vstudio/bb397926.aspx
说回来在我们的项目中如何使用呢?
例如最开始的例子
指标A1000
指标B500
指标C500
指标A=B+C
这里我定义一个实体类
classCIndex{ stringCIID; stringParentCIID; doubleCost; }
获取所有指标的数据到一个数组中。listIndexs
注意例子中的指标要按树形顺序排列好,然后我们从最底下的子节点往上更新数据,
这样可以避免先更新了父节点后,才发现子节点数据不对的问题。
对数组从最后面的元素开始遍历
这样就能很简单的完成对父子节点的计算。
项目中我们很多时候都会用到DataTable那么Linq这时候又该怎么处理呢?
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。