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. Redis数据类型简介(十分钟快速学习Redis)

    如何在ubuntu18.04上安装和保护redis 如何连接到Redis数据库 如何管理Redis数据库和Keys 如何在Redis中管理副本和客户端 如何在Redis中管理字符串 如何在Redis中 ...

  2. Spring全家桶之spring boot(三)

    spring boot集成mybatis 众所周知,spring与springmvc可以无缝集成,而mybatis不是spring旗下的框架,因此需要进行配置,当然,这里的配置也是非常简单的. 1.首 ...

  3. 智能制造:数字化协同技术在BIW焊装产线的应用

    随着汽车工业的发展,如何利用数字化技术提高整车制造水平,已经成为各厂商亟待解决的问题.通过数字化工厂系统的应用使得白车身整车项目前期工艺设计.生产线规划质量有了显著提升,数字化工厂已经成为现代焊装生产 ...

  4. Django之内置分页器(paginator)

    django分页: from django.shortcutsimportrender from django.core.paginator import Paginator,EmptyPage, P ...

  5. 解决You should consider upgrading via the 'python -m pip install --upgrade pip' command. (pip工具版本较低导致)

    步骤1:  找到pip- 版本号 dist-info 文件夹 操作: 在python的安装目录下的Lib文件下的site-packages文件夹下找到 ip- 版本号 dist-info 文件夹   ...

  6. Linux——vim操作

    查看文件:vim 文件名 进入vim命令后: Shift+g:到达文件底部 /搜索内容:搜索文件中字符串:点击“N”键,查看下一个搜索内容位置

  7. c# 优化代码的一些规则——优先隐式类型[一]

    前言 说到底就是优先使用var,这个关键字,在c# 3.0中出现了. 首先要确认几点,一个就是var 是静态变量,而不是动态变量,也就是说使用var 你是不必去担心性能问题得, 百度百科: 1)静态存 ...

  8. 《Head First 设计模式》:策略模式

    正文 一.定义 策略模式定义了算法族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的客户. 要点: 策略模式把系统中会变化的部分抽出来封装. 二.实现步骤 1.创建策略接口 ...

  9. C# 数据操作系列 - 18 让Dapper更强的插件

    0. 前言 在前一篇中我们讲到了Dapper的应用,但是给我们的感觉Dapper不像个ORM更像一个IDbConnection的扩展.是的,没错.在实际开发中我们经常用Dapper作为对EF Core ...

  10. [SD心灵鸡汤]006.每月一则 - 2015.10

    1. 贫不足羞,可羞是贫而无志. 2. 艺术的大道上荆棘丛生,这也是好事,常人望而却步,只有意志坚强的人例外. 3. 古今中外,凡成就事业,对人类有作为的无一不是脚踏实地.艰苦攀登的结果. 4. 理想 ...