• LINQ处理List数据


    Linq处理List数据  

    2011-01-28 19:53:00|  分类: 默认分类|举报|字号 订阅

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

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

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

    •     var result=from n in dataList orderby n.TimeWritten descending select n;        

       //可以将n看做是dataList,得到的结果是dataList里面所有值按时间字段的降序排列。

    •     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(重复值,重复次数) 生成重复项
  • 相关阅读:
    centos用yum安装mysql-server
    redis-dev
    quicktime player录屏没有声音的解决方法
    Mysql 5.7 系列命令 timestamp类型的字段不能设默认值为“0000-00-00 00:00:00” 要设为`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新',
    centos7+apache+svn配置 踩坑,注意权限问题。apache应用目录checkout应用 必须用这个命令:svn co file:///home/svn/test/ test ,通过svn add * &&commit 及任意修改都是不行的
    github webhook 实现代码自动部署 踩坑!! 附加git&coding webhook部署代码
    linux达人养成计划
    linux下软件安装知识整理
    PHP升级7.2之后需要注意的事情
    CentOS7 通过YUM安装MySQL5.7
  • 原文地址:https://www.cnblogs.com/xlyg-14/p/4315910.html
Copyright © 2020-2023  润新知