如何使用LinQ To Object把数组或DataTable中的数据进行向上汇总
作者:森大科技 发布时间:2022-04-05 17:07:33
最近搞造价系统时遇到一些需要汇总的指标数据
类似下面的结构
指标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的话
看起来非常的清爽,而且和SQL的语法类似 我们可以快速的掌握。
至于具体的语法和介绍 大家可以自行的查询http://msdn.microsoft.com/zh-cn/library/vstudio/bb397926.aspx
说回来 在我们的项目中如何使用呢?
例如最开始的例子
指标A 1000
指标B 500
指标C 500
指标A = B+C
这里我定义一个实体类
class CIndex{
string CIID;
string ParentCIID;
double Cost;
}
获取所有指标的数据到一个数组中。 listIndexs
注意例子中的指标要按树形顺序排列好,然后我们从最底下的子节点往上更新数据,
这样可以避免先更新了父节点后,才发现子节点数据不对的问题。
对数组从最后面的元素开始遍历
这样就能很简单的完成对父子节点的计算。
项目中我们很多时候都会用到 DataTable 那么Linq这时候又该怎么处理呢?
来源:https://www.cnblogs.com/cnsend/p/12085086.html


猜你喜欢
- tasks下面的代码展示了三个Gradle task,稍后会讲解这三者的不同。 task myTask { println "He
- 如果需要在布局中创造一个层叠的概念,那么使用Android系统中的ViewGroup是不够的,但是可以通过改变ViewGroup的绘制顺序实
- Android Notification 使用方法详解用TaskStackBuilder来获取PendingIntent处理点击跳转到别的A
- 新建一个表:create table abc(id int IDENTITY(1,1) NOT NULL,name nvarchar(100
- 下面我们来探究Android如何实现关机,重启;在Android中这种操作往往需要管理员级别,或者rootAndroid实现的方式如下几种:
- 分转元private String fenToYuan(String amount){ NumberFormat format
- 本节我们来探讨如何使用Feign构造多参数的请求。笔者以GET以及POST方法的请求为例进行讲解,其他方法(例如DELETE、PUT等)的请
- Tab与TabHost:这就是Tab,而盛放Tab的容器就是TabHost 。如何实现?? 每一个Tab还对应了一个布局,这个就有点好玩了。
- 代码一:class Program { static int
- 我就废话不多说了,大家还是直接看代码吧~package c10; import java.util.Scanner; public clas
- 定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理
- 俄罗斯方块Tetris是一款很经典的益智游戏,之前就做了一款桌面版的java俄罗斯方块,这次就尝试着写了一款适用于Android平台的俄罗斯
- 一、达梦数据库简介说明:有关国产数据库完整的博客太少了,所以就想弄一个完整的专栏给大家提供一些帮助。在现在这种国际形势下,网络安全是每个企业
- 0.关于AOP面向切面编程(也叫面向方面编程):Aspect Oriented Programming(AOP),是软件开发中的一个热点,也
- 一、MyBatis的逆向⼯程(1)所谓的逆向⼯程是:根据数据库表逆向⽣成Java的pojo类,SqlMapper.xml⽂件,以及Mappe
- 业务场景通常微服务对于用户认证信息解析有两种方案在 gateway 就解析用户的 token 然后路由的时候把 userId 等相关信息添加
- 一、前言在编码过程中,常常需要写打印日志语句,我们期望的是同一个业务的日志都在一块,在出问题的时候好根据日志来排查问题。而现实是在应用运行中
- 很久以来都想研究一下利用java操作Excel的方法,今天没事,就稍微了解了一下,特总结一下。利用java操作Excel,有个开源的东东-j
- 素数就是质数,就是只能被1整除,不能被其他数整除的数java程序为:public static void main(String[] arg
- 把bitmap图片的某一部分的颜色改成其他颜色private Bitmap ChangeBitmap(Bitmap bitmap){ int