欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

如何使用LinQ To Object把数组或DataTable中的数据进行向上汇总

程序员文章站 2023-09-07 14:29:10
最近搞造价系统时遇到一些需要汇总的指标数据 类似下面的结构 指标a 1000 指标b 500 指标c 500 指标a = b+c 当我们需要对这些数值进行校...

最近搞造价系统时遇到一些需要汇总的指标数据

类似下面的结构

指标a 1000
指标b 500
指标c 500

指标a = b+c

当我们需要对这些数值进行校验时,实现的方法有很多种,数据库里写存储过程去更新每行数据,

或者我们在程序中遍历等等,但用起来都挺烦琐的。

这时候想到了 linq to object 这个技术

简单说下 linq 它是.net framework 3.5 引入的新技术

它允许编写c#或者visual basic代码以查询数据库相同的方式操作内存数据。

主要 有几点好处 简单 和 sql 的语法差不多举个例子来说

这里有两个数组 需要你找出 a 与 b 都存在的元素

a=int[]{1,2,3,4,5,6,7,8,0}; b=int[]{2,4,7,8,9}

一般我们会这么写

如何使用LinQ To Object把数组或DataTable中的数据进行向上汇总

如果使用 linq的话

如何使用LinQ To Object把数组或DataTable中的数据进行向上汇总

看起来非常的清爽,而且和sql的语法类似 我们可以快速的掌握。

至于具体的语法和介绍 大家可以自行的查询

说回来 在我们的项目中如何使用呢?

例如最开始的例子

指标a 1000
指标b 500
指标c 500

指标a = b+c

这里我定义一个实体类

class cindex{
string ciid;
string parentciid;
double cost;
}

获取所有指标的数据到一个数组中。 listindexs

注意例子中的指标要按树形顺序排列好,然后我们从最底下的子节点往上更新数据,

这样可以避免先更新了父节点后,才发现子节点数据不对的问题。

对数组从最后面的元素开始遍历

如何使用LinQ To Object把数组或DataTable中的数据进行向上汇总

这样就能很简单的完成对父子节点的计算。

项目中我们很多时候都会用到 datatable 那么linq这时候又该怎么处理呢?

如何使用LinQ To Object把数组或DataTable中的数据进行向上汇总

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。