using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    public class TestOne
    {
      private const string column = "A,B,C,D,E";
      DataTable dt = new DataTable();
      List<KPIFormula> list = new List<KPIFormula>();

private List<KPIFormula> log;

public List<KPIFormula> Test()

{

//添加列
      dt.Columns.AddRange(column.Split(',').Select(x => new DataColumn(x)).ToArray());
      //继续添加新列
       List<string> addcols = new List<string>() { "F","G","H","I","J"};
       addcols.ForEach(x => dt.Columns.Add(x));

int k = 0;
       for (int i = 0; i < 5; i ++)
       {
         DataRow dr = dt.NewRow();
         for (int j = 0; j < 10; j++)
         {
            dr[j] = k++;
         }
         dt.Rows.Add(dr);
       }

//降序
       DataTable dtorder = dt.AsEnumerable().OrderByDescending(o => o["A"]).CopyToDataTable();

//lambda过滤
       List<string> pre = dt.AsEnumerable().Where(w => w.Field<string>("A").Contains("0") && w.Field<string>("B").Contains("1")).Select(w => w.Field<string>("C")).Distinct().ToList();

list = dt.AsEnumerable().Select(o =>
       {
         return new KPIFormula()
         {
            subject = o["A"].ToString(),
            name = o["B"].ToString(),
            formula = o["C"].ToString()
          };
        }).ToList();

//对数据做一些处理
        TestTwo(ref list);

return list;
       }

public List<KPIFormula> TestTwo(ref List<KPIFormula> kpilist)
      {
        if (log == null)
        {
          log = new List<KPIFormula>();
          int flag = 0;
          kpilist.ForEach(c =>
          {
            if (c == null) return;
            var item = new KPIFormula
            {
              subject = c.subject + flag,
              name = c.name + flag,
              formula = c.formula + flag
            };
            log.Add(item);
            flag++;
          });
        }
        kpilist = log;
        return kpilist;
      }
  }

//定义KPIFormula对象集

public class KPIFormula
  {
     public string subject { set; get; }
     public string name { set; get; }
     public string formula { set; get; }
  }

}

lambda表达式操作DataTable番外篇的更多相关文章

  1. lambda表达式操作DataTable

    using System;using System.Collections.Generic;using System.Data;using System.Linq;using System.Text; ...

  2. 0-ajax操作json(番外篇)

    [可以先看后边再看此文] get获取json 前端代码 <!DOCTYPE html> <html> <head> <meta charset="u ...

  3. 《手把手教你》系列技巧篇(三十一)-java+ selenium自动化测试- Actions的相关操作-番外篇(详解教程)

    1.简介 上一篇中,宏哥说的宏哥在最后提到网站的反爬虫机制,那么宏哥在自己本地做一个网页,没有那个反爬虫的机制,谷歌浏览器是不是就可以验证成功了,宏哥就想验证一下自己想法,于是写了这一篇文章,另外也是 ...

  4. 《手把手教你》系列技巧篇(三十六)-java+ selenium自动化测试-单选和多选按钮操作-番外篇(详解教程)

    1.简介 前边几篇文章是宏哥自己在本地弄了一个单选和多选的demo,然后又找了网上相关联的例子给小伙伴或童鞋们演示了一下如何自动化测试,这一篇宏哥在网上找了一个问卷调查,给小伙伴或童鞋们来演示一下.上 ...

  5. 番外篇 之 C#委托

    对于上一节 番外篇之C#多线程的反思 反思一:   Thread th = new Thread(参数); ////参数的总结 ////首先,第一情况,对于 Thread th = new Threa ...

  6. 给深度学习入门者的Python快速教程 - 番外篇之Python-OpenCV

    这次博客园的排版彻底残了..高清版请移步: https://zhuanlan.zhihu.com/p/24425116 本篇是前面两篇教程: 给深度学习入门者的Python快速教程 - 基础篇 给深度 ...

  7. (八)羽夏看C语言——C番外篇

    写在前面   此系列是本人一个字一个字码出来的,包括示例和实验截图.本人非计算机专业,可能对本教程涉及的事物没有了解的足够深入,如有错误,欢迎批评指正. 如有好的建议,欢迎反馈.码字不易,如果本篇文章 ...

  8. 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  9. 【重走Android之路】【番外篇】有关于null的一些知识点

    [重走Android之路][番外篇]有关于null的一些知识点   1.首先,到底什么是null? null是Java中的一个关键字,用于表示一个空对象引用,但其本身并不是任何类型也不是属于任何对象. ...

随机推荐

  1. Spring Boot 之 Spring Batch 批处理实践

    实践内容 从 MariaDB 一张表内读 10 万条记录,经处理后写到 MongoDB . 具体实现 1.新建 Spring Boot 应用,依赖如下: <!-- Web 应用 --> & ...

  2. java ->多线程_线程同步、死锁、等待唤醒机制

    线程安全 如果有多个线程在同时运行,而这些线程可能会同时运行这段代码.程序每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的. l  我们通过一个案例,演示线 ...

  3. PHP EOF使用说明

    PHP EOF(heredoc) 使用说明 PHP EOF(heredoc)是一种在命令行shell(如sh.csh.ksh.bash.PowerShell和zsh)和程序语言(像Perl.PHP.P ...

  4. react-grid-layout实现拖拽,网格布局

    借鉴地址:https://www.jianshu.com/p/b48858eee3a7 安装 react-grid-layout npm install react-grid-layout impor ...

  5. SMBMS项目-准备工作

    项目搭建准备工作 1.基础准备工作 搭建一-个maven web项目 配置Tomcat 测试项目是否能够跑起来 导入项目中会遇到的jar包 jsp,Servlet,mysq|驱动, jstl, sta ...

  6. 数据结构----二叉树Tree和排序二叉树

    二叉树 节点定义 class Node(object): def __init__(self, item): self.item = item self.left = None self.right ...

  7. Poj1328 用雷达覆盖所有的岛屿

    (此配图来自http://blog.csdn.net/zhengnanlee/article/details/9613161) 图中ABCD为海岛的位置.题目中会给出几个海岛的坐标位置,雷达覆盖半径d ...

  8. Android中的成员变量与局部变量

    简单说一下吧, note:java中的成员变量就是c++中的全局变量 1.可以在全局范围内使用:局部变量只能在其定义的方法里使用. 2.成员变量可以不赋初值使用,调用时有系统的默认的初值,比如int类 ...

  9. SPL数据结构

    数据结构是计算机存储.组织数据的方式. SPL提供了双向链表.堆栈.队列.堆.降序堆.升序堆.优先级队列.定长数组.对象容器. 基本概念Bottom:节点,第一个节点称Bottom:Top:最后添加的 ...

  10. Linux centos 7 目录结构

    一.目录结构与用途: /boot:系统引导文件.内核 /bin:用户的基本命令 /dev:设备文件 /etc:配置文件 /home:用户目录 /root:root用户目录 /sbin:管理类的基本命令 ...