博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linq 处理 List数据
阅读量:7033 次
发布时间:2019-06-28

本文共 2350 字,大约阅读时间需要 7 分钟。

概述: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

转载于:https://www.cnblogs.com/liubaojing/p/8358417.html

你可能感兴趣的文章
javascript—其他
查看>>
Linux命令之CURL
查看>>
用emacs进行批量查找替换的例子
查看>>
开源 免费 java CMS - FreeCMS-数据对象-link
查看>>
JVM与字节码—类的方法区模型
查看>>
java中的getParentFile
查看>>
Linux下软链接与硬链接的区别
查看>>
git 基本操作指令
查看>>
linux21-磁盘阵列
查看>>
openstack问题收集
查看>>
构造函数和析构函数
查看>>
python3.6 安装pyhook_3
查看>>
jetty NoSuchMethodError: javax.servlet.http.HttpServletRequest.getServletContext()
查看>>
IT人生 需要指引
查看>>
valgrind for android
查看>>
整理各版本Spring所要求的JavaSE和JavaEE的版本
查看>>
高人的博客地址收藏
查看>>
BugHD for JavaScript上线,轻松收集前端 Error
查看>>
正则表达式 与grep
查看>>
OC之@class
查看>>