zoukankan      html  css  js  c++  java
  • LINQ常用操作

    LINQ

    常用操作

    包括

    查询语法

    Lambda

    表达式语法方式,只是在表现风格上有所

    不同

    先定义一个类,便于使用

    public class Student

    {

    public string id {get;set;}

    public double english {get;set;}

    public double computer {get;set;}

    public double math {get;set;}

    public double total { get {return

    english+computer+math; } }

    public double average { get { return total / 3; } }

    }

    实例化之

    //

    这对象的来源就多了

    ,xml,webservice,

    数据库

    ,

    业务逻

    辑,系统内存

    var list = new List<Student>();

    Random r = new Random();

    for (int i = 0; i < 50; i++)

    {

    Student s = new Student();

    s.id = i.ToString("00");

    s.english = r.Next(0,100);

    s.math = r.Next(0, 100);

    s.computer = r.Next(0, 100);

    list.Add(s);

    }

    4.1

    投影

    针对数据库而言的一个概念

    :

    统计平均成绩在

    60

    分以上的学生人数,不调用类的方法,

    只是模拟对结合的查询

    list.Count(g => (g.computer + g.english + g.math) /

    3 >=60));

    //foreach (Student s in list)

    //{

    //

    Console.WriteLine(s.computer);

    //}

    4.2

    选择

    //var result = from ss in list

    //

    select new { ss.id, ss.total,

    ss.average };

    //

    匿名类型

    //var result = list.Select( ss => new { ss.id, ss.total,

    ss.average });

    //

    和上面等价

    //

    遍历

    // list.ForEach(s => { Console.WriteLine("total:{0}",

    s.math + s.computer + s.english); });

    // list.ForEach(s => { Console.WriteLine( s.math +

    s.computer + s.english); });

    4.3

    排序

    //

    查询方式

    var result = from ss in list

    orderby ss.average descending

    select ss;

    //

    表达式方式

    var result = list.OrderByDescending(ss =>

    ss.average);

    //

    查询平均成绩

    >60

    的学生

    ID

    /*

    var result = from ss in list where ss.average > 60

    select ss;

    */

    //var result = list.Where(ss => ss.average >= 70);

    /*

    foreach (var s in result)

    {

    Console.WriteLine("id:{0},ave{1}", s.id,

    s.average);

    }

    4.4

    数据分页

    (这个太好了,在我还是初级程序员的时候,公司有个

    伪高人就是封装了分页存储过程的

    Web

    控件,

    然后如鱼得水了好一阵。

    做事情最好还是踏实点,

    觉得自己差不多了的时候,脑子里装不进新东

    西!)

    Skip Take

    两个方法

    for (int i = 0; i < 5; i++)

    {

    Console.WriteLine("

    这是第

    :{0}

    ", i);

    Console.WriteLine("---------------------------------

    ---------------------------");

    var result = list.Skip(10).Take(10);

    foreach (var s in result)

    {

    Console.WriteLine("id:{0}ave:{1}", s.id,

    s.average);

    }

    Console.WriteLine("---------------------------------

    ---------------------------");

    }

    4.5

    返回单条记录

    //

    查找学生成绩大于

    90

    的第一名学生

    var result = list.FirstOrDefault(s => s.math>90);

    if (result != null)

    {

    Console.WriteLine("id:{0}math:{1}",result.id,re

    sult.math.ToString("00.0"));

    }

    Console.ReadLine();

    //

    知道

    select top1 form user;

    吗?

    //

    MSSql select DISTINCT name, * from user;

    呢?

    转载请注明文章来自:程序猴(http://www.chengxuhou.com/)
  • 相关阅读:
    【python+selenium】selenium grid(分布式)
    【python】导入自定义模块
    Maven的配置以及IDEA导入本地Maven
    java历史概述
    JVM 内存调优 与 实际案例
    ConcurrentHashMap实现线程安全的原理
    Request.UrlReferrer详解
    等比例缩放生成缩略图
    JavaEE的ajax入门
    javaee三层架构案例--简单学生管理系统
  • 原文地址:https://www.cnblogs.com/minotmin/p/3207058.html
Copyright © 2011-2022 走看看