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

 更新时间:2019年12月24日 14:12:28   作者:森大科技  
这篇文章主要介绍了如何使用LinQ To Object把数组或DataTable中的数据进行向上汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

类似下面的结构

指标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这时候又该怎么处理呢?

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

相关文章

  • 深入DropDownList用法的一些学习总结分析

    深入DropDownList用法的一些学习总结分析

    本篇文章是对DropDownList的用法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • C#反射应用实例

    C#反射应用实例

    这篇文章主要介绍了C#反射应用,实例分析了通过反射实现多系统数据库的配置方法,是比较实用的技巧,需要的朋友可以参考下
    2014-12-12
  • 时间字符串转换成日期对象datetime的方法

    时间字符串转换成日期对象datetime的方法

    在遇到形如"2012-12-19T17:00:00Z"这样的时间字符串时,怎样转换到DateTime类型呢,下面的方法可以解决
    2013-12-12
  • 一个基于C#开发的Excel转Json工具使用教程

    一个基于C#开发的Excel转Json工具使用教程

    JSON吸引了工具构建者的注意,它们开发了用于重新格式化、验证和解析JSON的众多工具,这不足为奇,下面这篇文章主要给大家介绍了一个基于C#开发的Excel转Json工具的相关资料,需要的朋友可以参考下
    2022-11-11
  • C#编程实现连接ACCESS数据库实例详解

    C#编程实现连接ACCESS数据库实例详解

    这篇文章主要介绍了C#编程实现连接ACCESS数据库的方法,以实例形式较为详细的分析了C#连接access数据库的具体步骤与相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11
  • C#中使用IFormattable实现自定义格式化字符串输出示例

    C#中使用IFormattable实现自定义格式化字符串输出示例

    这篇文章主要介绍了C#中使用IFormattable实现自定义格式字符串输出示例,本文直接给出实例代码,需要的朋友可以参考下
    2015-06-06
  • C#加密解密类实例程序

    C#加密解密类实例程序

    这篇文章主要介绍了C#加密解密类实例程序,大家参考使用吧
    2013-12-12
  • C# WPF实现3D操作几何体效果

    C# WPF实现3D操作几何体效果

    众所周知,我的世界就是无数个像素块的集合,而像素块也就是立方体。关于新建立方体,这个大家已经非常熟练了,本文就来说说如何实现3D操作几何体效果吧
    2023-03-03
  • Unity3D实战之答题系统的实现

    Unity3D实战之答题系统的实现

    本文将用Unity3D制作一个答题系统,可以从文本文档中提取题目和分数,然后绑定到UI上,在答题的过程中,自动判断分数,自动判断正确率。感兴趣的可以学习一下
    2022-03-03
  • C# Timer控件学习之使用Timer解决按钮幂等性问题

    C# Timer控件学习之使用Timer解决按钮幂等性问题

    Timer控件又称定时器控件或计时器控件,该控件的主要作用是按一定的时间间隔周期性地触发一个名为Tick的事件,因此在该事件的代码中可以放置一些需要每隔一段时间重复执行的程序段,这篇文章主要介绍了关于C#使用Timer解决按钮幂等性问题的相关资料,需要的朋友可以参考下
    2022-10-10

最新评论