概述: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. 4.css基础

    1 Css概念 CSS 指层叠样式表 (Cascading Style Sheets)(级联样式表) Css是用来美化html标签的,相当于页面化妆. ◆样式表书写位置 2选择器 2.1 写法 选择器 ...

  2. 有人在用fastReport作报表时处理过字体自动缩小的问题吗,怎么做

    有人在用fastReport作报表时处理过字体自动缩小的问题吗,怎么做  我来答   浏览 49 次 1个回答 #吃瓜大会# Angelababy演技被吐槽, 你觉得她的演技怎么样? 最佳答案 热心 ...

  3. ssh远程连接不上linux

    远程连接工具是:Xmanager Enterprise 5-->Xshell linux 发行版本是:CentOS-6.3-x86_64 问题:ssh一直都可以远程连接上linux,一段时间后突 ...

  4. 聚合和分组F,Q和事物,cookie,session

    聚合 aggregate()是QuerySet 的一个终止子句,意思是说,它返回一个包含一些键值对的字典. 键的名称是聚合值的标识符,值是计算出来的聚合值.键的名称是按照字段和聚合函数的名称自动生成出 ...

  5. 试着用java实现DNS(一)——DatagramSocket, DatagramPacket, Message

    一般来说,自己编写DNS是没有必要的,目前开源的dns服务软件很多,功能也很强大.但是,有时候又是很有必要的,有着诸多好处.比如说,用于企业内网,简化DNS配置,可以根据企业需求添加新的功能,非常灵活 ...

  6. eclipse上搭建mybatis

    1..在help中打开 2.搜索mybatipse 3:功能简介 1:要查找某一个方法        在dao接口中某一个方法中 按住 Ctrl键 鼠标指到方法名称上 选择open xml 就会自动跳 ...

  7. java ant 编译打包build.xml完整配置范例

    java ant 编译打包build.xml完整配置范例 <?xml version="1.0" encoding="UTF-8" ?> <p ...

  8. Centos6.7配置Nginx+Tomcat简单整合

    系统环境:Centos 6.7 软件环境:JDK-1.8.0_65.Nginx-1.10.3.Tomcat-8.5.8 文档环境:/opt/app/ 存放软件目录,至于mkdir创建文件就不用再说了 ...

  9. 全网最详细的Hadoop HA集群启动后,两个namenode都是standby的解决办法(图文详解)

    不多说,直接上干货! 解决办法 因为,如下,我的Hadoop HA集群. 1.首先在hdfs-site.xml中添加下面的参数,该参数的值默认为false: <property> < ...

  10. JavaScript --Window-对话框

    -----038-Window-对话框.html----- <!DOCTYPE html> <html> <head> <meta http-equiv=&q ...