zoukankan      html  css  js  c++  java
  • 使用LinQ To Object把数组或DataTable中的数据进行向上汇总

    来自森大科技官方博客
    http://www.cnsendblog.com/index.php/?p=215
    GPS平台、网站建设、软件开发、系统运维,找森大网络科技!
    http://cnsendnet.taobao.com

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

    类似下面的结构

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

     

    来自森大科技官方博客
    http://www.cnsendblog.com/index.php/?p=215
    GPS平台、网站建设、软件开发、系统运维,找森大网络科技!
    http://cnsendnet.taobao.com

  • 相关阅读:
    git使用代理
    反汇编一个c程序
    Berkeley套接字
    ubuntu 升级
    ubuntu备份与还原
    struct socket 结构详解
    How sockets work
    wget中文乱码问题
    ubuntu配置开机启动服务
    《javascript设计模式》笔记之第五章:单体模式
  • 原文地址:https://www.cnblogs.com/cnsend/p/12085086.html
Copyright © 2011-2022 走看看