如何使用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 To Object把数组或DataTable中的数据进行向上汇总

如果使用 Linq的话

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

看起来非常的清爽,而且和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

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

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

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

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

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

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

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

来源:https://www.cnblogs.com/cnsend/p/12085086.html

标签:LinQ,Object,数组,DataTable
0
投稿

猜你喜欢

  • springboot vue完成发送接口请求显示响应头信息

    2023-06-05 02:45:34
  • C#事件管理器如何清空所有监听详解

    2022-01-17 14:29:44
  • Springboot 如何指定获取出 yml文件里面的配置值

    2022-08-29 21:04:48
  • java批量修改文件后缀名方法总结

    2022-03-15 15:46:04
  • java睡眠排序算法示例实现

    2022-04-01 00:13:32
  • c#转义字符串中的所有正则特殊字符方法示例

    2021-06-23 12:05:21
  • 深入c# Func委托的详解

    2022-02-15 05:44:51
  • SpringBoot集成redis实现分布式锁的示例代码

    2022-08-24 19:21:56
  • C# 特殊的string类型详解

    2022-02-10 14:11:59
  • 学习Java内存模型JMM心得

    2023-11-28 20:56:17
  • spring security在分布式项目下的配置方法(案例详解)

    2022-12-26 03:45:49
  • 详解在spring boot中消息推送系统设计与实现

    2023-05-28 04:17:00
  • 解决Android MediaRecorder录制视频过短问题

    2023-04-24 01:47:56
  • 软件开发基础之设计模式概述

    2023-05-14 04:53:07
  • C#获取本地IP的四种方式示例详解

    2023-04-16 00:52:50
  • springboot如何获取相对路径文件夹下静态资源的方法

    2023-07-12 06:23:09
  • mybatis-generator自动生成dao、mapping、bean配置操作

    2023-08-17 14:05:30
  • 解析Flink内核原理与实现核心抽象

    2023-11-25 10:30:04
  • 实现activity管理器一次退出所有activity

    2022-11-20 10:15:23
  • Java中如何调用cmd压缩文件

    2023-12-09 13:37:02
  • asp之家 软件编程 m.aspxhome.com