概述: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. 加密算法(DES,AES,RSA,MD5,SHA1,Base64)比较和项目应用(转载)

    加密技术通常分为两大类:"对称式"和"非对称式". 对称性加密算法:对称式加密就是加密和解密使用同一个密钥.信息接收双方都需事先知道密匙和加解密算法且其密匙是相 ...

  2. bootstrap基础学习小记(三)网格简介

    网格系统:网格系统的实现原理非常简单,仅仅是通过定义容器大小,平分12份(也有平分成24份或32份,但12份是最常见的),再调整内外边距,最后结合媒体查询,就制作出了强大的响应式网格系统.Bootst ...

  3. Token的生成和检验

    package TestToken; import com.auth0.jwt.JWT; import com.auth0.jwt.JWTVerifier; import com.auth0.jwt. ...

  4. lua 源码阅读顺序

    https://www.reddit.com/comments/63hth/ask_reddit_which_oss_codebases_out_there_are_so/c02pxbp Online ...

  5. Angular2入门体验

    好的工具往往使得开发应用更快更简单,而不是任何模块都手动开发.angualr cli就是一个支持 创建工程,添加文件,对各种任务如测试.打包.部署等迭代. 本文的目的就是基于TypeScript开发构 ...

  6. 大数据与Hadoop

    figure:first-child { margin-top: -20px; } #write ol, #write ul { position: relative; } img { max-wid ...

  7. Java 多线程学习笔记:wait、notify、notifyAll的阻塞和恢复

    前言:昨天尝试用Java自行实现生产者消费者问题(Producer-Consumer Problem),在coding时,使用到了Condition的await和signalAll方法,然后顺便想起了 ...

  8. charles重复发包工具/repeat

    重复发包工具/repeat Charles 让你选择一个请求并重复,在测试后端接口的时候非常有用: Charles将请求重新发送到服务器,并将响应显示为新请求. 如果您进行后端更改并希望测试它们,用了 ...

  9. Android在代码中获取应用签名

    平时都是用AS敲命令获取签名信息...还没有在代码中获取过签名~ 也算是老编程了,没做过这个稍微有点尴尬...本着有好轮子就用的原则,网上找了几篇博客,这块内容已经很完善了,我也没什么可以优化的... ...

  10. 全网最详细的启动Kafka服务时出现kafka.common.InconsistentBrokerIdException: Configured brokerId 3 doesn't match stored brokerId 1 in meta.properties错误的解决办法(图文详解)

    不多说,直接上干货! 问题详情 执行bin/kafka-server-start.sh config/server.properties 时, [kfk@bigdata-pro03 kafka_2.- ...