概述:LINQ又称为语言集成查询,是一种类似于SQL的一种查询语言。语言集成查询让开发人员可以使用.NET程序语言(如C#)去查询数据源,主要数据源为内存中的集合对象、ADO.NET数据集、数据库以及XML,开发人员不用去分门别类地学习众多的查询语法就可以轻松地查询异构数据源。

三种表现形式:复合查询、Lambda表达式以及混合查询。

  1、查询集合数据方法依次为:

      复合查询:

       var result=from n in dataList orderby n.TimeWritten descending select n;   //可以将n看做是dataList,得到的结果是dataList里面所有值按时间字段的降序排列。

      Lambda表达式查询:

      var result=dataList.Select(p=>new{p.ID,p.Name,p.TimeWritten}); //Lambda表达式由匿名方法演变而来。这段Code中p为参数,多个参数可用(p,m..)表示。"=>"为推出符号,后面为返回值。该事例的返回值为对象中指定的字段。

        混合查询:

        var result=from n in dataList select n.OrderByDescending(p => p.TimeWritten);  //查询集合所有数据按照时间字段降序来排序。升序为OrderBy()。

  2、删除数据

    List<NewSingle> dataList=new List<NewSingle>();

      NewSingle single=dataList.Single(p=>p.ID==1);

      dataList.DeleteOnSubmit(NewSingle);

      dataList.SubmitChanges();

  3、插入数据

    NewSingle single=new NewSingle();

    single.Name="Test1";

    single.TimeWritten=this.DateTime.Now.ToString();

    single.Subject="subject";

    dataList.InsertOnSubmit(single);

    dataList.SubmitChanges();

  4、修改数据

    NewSingle single=from n in dataList where n.ID == 3 select n;

    single.Name="Test2";

    single.TimeWritten="2011-3-17";

    single.Subject="subject2";

    dataList.SubmitChanges();

    注:linq中不支持Convert转换。

  5、查询绑定DropDownList

    var data=from n in dataList select new { Name=n.Name,ID=n.ID};

    DropDownList1.DataTextField="Name";

    DropDownList1.DataValueField="ID";

    DropDownList1.DataSource=data;

    DropDownList1.DataBind();

  6、绑定GridView

    GridView1.DataSource=dataList.Select(p=>p);

    GridView1.DataBind();

  7、表联接

    var result=from a in mytest.stuInfo join b in mytest.stuMarks on a.stuNo equals b.stuNo (into c) select new {Name=a.stuname,b.writtenExam};

  8、其他方法

    DeleteAllOnSubmit<T>(object)  删除T类型的对象

    Where() 条件查询返回bool

    GroupBy() 分组

    SubString(n,m) 从n开始截取m条数据

    Skip(number)跳过指定数量的项 】常用于表格分页

    Take(number) 提取指定数量的项 】

    TakeWhile() 根据指定条件提取

    SkipWhile() 根据指定条件跳选项,从第一个不符合小件的项开始提取

    ThenBy(s=>s.Name) 复合排序,出现在多字段列表中,置于在OrderBy后面

    Distinct() 过滤重复数据

    ToList() 转换成List

    Count() 数据总数

    Max()/Min()  最大值/最小值

    Average() 平均值

    Sum() 总和

    Range()  例:num=Enumerable.Range(1,10) 从1开始产生十个数据

    Repeat(重复值,重复次数) 生成重复项

    传送门:http://blog.163.com/lm_regina/blog/static/17419653620110287530239

Linq 处理 List数据的更多相关文章

  1. Entity Framework 6 Recipes 2nd Edition(11-11)译 -> 在LINQ中调用数据库函数

    11-11. 在LINQ中调用数据库函数 问题 相要在一个LINQ 查询中调用数据库函数. 解决方案 假设有一个任命(Appointment )实体模型,如Figure 11-11.所示, 我们想要查 ...

  2. linq根据传入数据集合查询对应子级数据

    工作中经常用到的linq根据传入数据集合查询对应子级数据,整理共享,希望大家都能用得上,代码中doublesArray 为父节点对应ID数据集合,再根据ID数据集合查询全部子级数据. //获取缓存数据 ...

  3. linq依据传入数据集合查询相应子级数据

    工作中经经常使用到的linq依据传入数据集合查询相应子级数据,整理共享,希望大家都能用得上,代码中doublesArray 为父节点相应ID数据集合,再依据ID数据集合查询所有子级数据. //获取缓存 ...

  4. LINQ和.NET数据访问

    .NET数据访问 在.NET中对于数据的访问大致有三个层面,数据访问层.内存数据集.业务逻辑层.数据层,包括了XML配置文件以及一些常用的数据库(使用SQL语句):内存数据集,主要是DataSet数据 ...

  5. mvc+linq+EF对数据表的查删改

    /// <summary> /// 查询数据库中学生姓名 /// </summary> /// <returns></returns> public A ...

  6. C# Linq处理list数据

    获取数据列表. //获取数据列表,Model是类 IList<Model> list = dao.getmx(Model, pageInfo);//DataTable数据DataTable ...

  7. Linq处理list数据

    获取数据列表. //获取数据列表,Model是类 IList<Model> list = dao.getmx(Model, pageInfo);//DataTable数据DataTable ...

  8. Linq中字段数据类型转换问题(Linq to entity,LINQ to Entities 不识别方法"System.String ToString()"问题解决)

    1.在工作中碰到这样一个问题: 使用linq时,需要查询两个表,在这两张表中关联字段分别是int,和varchar()也就是string,在linq中对这两个字段进行关联, 如果强制类型转换两个不同类 ...

  9. 通过Linq查找重复数据

    一.模拟初始化集合数据 List<Student> students = new List<Student>() { new Student(){ Age=18,Name=&q ...

随机推荐

  1. 【VB.NET】利用纯真IP数据库查询IP地址及信息

    几年前从某个博客抄来的,已经忘记原地址了,如果需要C#版的,可以在博客园搜到吧.我因为自己用,所以转换为了VBNET代码,而且也放置了很久,今天无意间翻出来,就分享给大家吧. 首先,先下载 纯真数据库 ...

  2. 《基于MVC的JavaScript Web富应用开发》学习笔记

    第1章 MVC和类 1. 什么是MVC? MVC是一种设计模式, 它将应用划分为3个部分: 数据(模型, Model), 展现层(视图, View) 和用户交互层(控制器, Controller). ...

  3. JQuery Mobile - html5+CSS 禁止IOS长按复制粘贴实现

    因为在移动端APP需要实现长按执行别的事件,但是在IOS系统有默认的长按选择复制粘贴,禁止此功能在网上找了很多资料,最终整理出目前最好的解决方法.实际测试,也并不是很理想,但是可能没有更好办法了! / ...

  4. PHP 获取两个时间之间的月份

    ## 获取两个时间之间的间距时间 $s = '2017-02-05'; $e = '2017-07-20'; $start = new \DateTime($s); $end = new \DateT ...

  5. ping端口是否开放(windows,macos,linux)

    windows中ping端口:tcping命令 1. tcping 非自带命令,首先安装tcping命令,也可以去官网:http://www.elifulkerson.com/projects/tcp ...

  6. Git文件状态

    在Git中,文件状态是一个非常重要的概念,不同的状态对应不同的操作.因此,要想熟练掌握Git的用法,需要了解Git的几种文件状态. Git库所在的文件夹中的文件大致有4种状态: Untracked:未 ...

  7. typescript-koa-postgresql 实现一个简单的rest风格服务器 —— typescript 开发环境配置

    最近需要用 nodeJS 写一个后台程序,为了能够获得 IDE 的更多代码提示,决定用 typescript 来编写,随便也学习下 ts,在这记录下实现过程. 1.新建文件夹 typescript-k ...

  8. Nginx 简易教程

    Nginx 本项目是一个 Nginx 极简教程,目的在于帮助新手快速入门 Nginx. demos 目录中的示例模拟了工作中的一些常用实战场景,并且都可以通过脚本一键式启动,让您可以快速看到演示效果. ...

  9. Python 模块 和 包

    模块 os模块 路径拼接 os.path.join

  10. 客户端禁用cookie

    如果客户端禁用cookie的话不影响session使用 的设置方法: <sessionState     cookieless="AutoDetect"