zoukankan      html  css  js  c++  java
  • c# Lamdba及DataTable AsEnumerable()的使用

    Lamdba是延迟执行的,实际上什么都没有发生,当真正使用对象的时候(例如调用:First, Single, ToList….的时候)才执行。

    1.Where
    var var_dtTable = dtTable.AsEnumerable().Where<DataRow>(W => W["NAME"].ToString()=="张三");
    int count = var_dtTable.Count<DataRow>();//获取dtTable中NAME为张三的个数

    2.Average
    //获取dtTable中avg_name列的平局数
    int avg = dtTable.AsEnumerable().Average<DataRow>(A => float.Parse(A["avg_name"].ToString()))

    3.GroupBy
    DataTable dtTable = new DataTable();//数据源
    DataTable dtResult = new DataTable();
    dtResult.Columns.Add("groupBy_name", typeof(string));
    dtResult.Columns.Add("sum_name", typeof(int));
    dtResult.Columns.Add("count_name", typeof(int));
    var var_dtTable= dtTable.AsEnumerable().GroupBy(G => G["groupBy_name"].ToString()).Select(S => new {
                    groupBy_name= s.Key,//获取分组的值
                    sum_name= s.Sum(m => m.Field<int>("sum_name")),//获取列名为sum_name数据的和
                    count_name= s.Count(m => m.Field<int>("count_name"))//获取列名为count_name数据的个数
                    });
    var_dtTable.ToList().ForEach(f=> dtResult.Rows.Add(f.groupBy_name,f.sum_name,f.count_name);//对应的顺序为dtResult列的顺序

    4.OrderBy
    DataTable dtTable = new DataTable();//数据源
    dtTable = dtTable.AsEnumerable().OrderByDescending(o => o["OrderBy_name"]).CopyToDataTable();//降序
    dtTable = dtTable.AsEnumerable().OrderBy(o => o["OrderBy_name"]).CopyToDataTable();//升序

    5.Distinct
    DataTable dtTable = new DataTable();//数据源
    //column_name是要Distinct列的名字
    dtTable = dtTable.AsEnumerable().Distinct(new ColumnEquals("column_name")).CopyToDataTable();

    作者:ldy

    出处:https://www.cnblogs.com/ParanoiaApe/

    你所做的一切努力并不会立即给你想要的一切,但可以让你逐渐成为你想成为的那一种人!

    本文版权归作者所有,欢迎转载,但请保留该声明。

  • 相关阅读:
    深入剖析RocketMQ源码-NameServer
    Percolator模型及其在TiKV中的实现
    源码解读Dubbo分层设计思想
    vivo营销自动化技术解密|开篇
    Node.js 应用全链路追踪技术——[全链路信息获取]
    Linux系统 usermod -a -G 不重启 立即生效
    安装Docker和Docker-Compose工具
    linux 启动停止jar
    check_ffmpeg_status
    shell 的字符完全匹配
  • 原文地址:https://www.cnblogs.com/ParanoiaApe/p/10131151.html
Copyright © 2011-2022 走看看