Linq中Take与Skip的使用

eg:现要求查询出class_id为2的班级中年龄最大的3个学生的姓名

使用SQL语句查询时,代码如下所示。

select top 3 student_name from tb_Student where class_id=2 order by student_age

在Linq中使用Take()方法结合orderby子句一起来实现

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5
 6 namespace TakeAndSkipExp
 7 {
 8     class Program
 9     {
10         static void Main(string[] args)
11         {
12             using (TestDBEntities myDbEntity = new TestDBEntities())
13             {
14                 var query = from student in myDbEntity.tb_Student
15                             where student.class_id == 2
16                             select student;
17                 Console.WriteLine("2班年龄最大的3个学生是:");
18                 var top3Student = query.OrderBy(it => it.student_age).Take(3);
19                 foreach (var s in top3Student)
20                 {
21                     Console.WriteLine(s.student_name);
22                 }
23                 Console.WriteLine("2班其他的学生是:");
24                 var otherStudent = query.OrderBy(it => it.student_age).Skip(3);
25                 foreach (var s in otherStudent)
26                 {
27                     Console.WriteLine(s.student_name);
28                 }
29             }
30         }
31     }
32 }

由以上代码可分析出:

Take()方法的作用就是:从查询结果中提取前n个结果。而实例中出现的Skip()方法正好是Take()方法的反面,它可以跳过前n个结果,返回剩余的结果。

在Linq中两者被称为分区运算符。

原文地址:https://www.cnblogs.com/Arainzhe/p/9347497.html

时间: 2024-10-13 05:51:19

Linq中Take与Skip的使用的相关文章

Sliverlight linq中的数组筛选数据库中的数据

首先 什么是linq呢 ? LINQ即Language Integrated Query(语言集成查询),LINQ是集成到C#和Visual Basic.NET这些语言中用于提供查询数据能力的一个新特性. 它是.NET框架的扩展,它允许我们以数据库查询的方式查询数据集合. 借助于LINQ技术,我们可以使用一种类似SQL的语法来查询任何形式的数据. 接下来讲讲我工作中用到的 linq中的数组筛选数据库中的数据 public List GetList1(string cardPhone,string

linq中AsEnumerable和AsQueryable的区别

本文导读:用Linq来操作集合的时候会用到AsQueryable()和AsEnumerable(),何时该用AsQueryable()和何时该用AsEnumerable(),或许存在些疑惑.AsQueryable是在数据库中查询再返回数据,AsEnumerable是从数据库读取全部数据再在程序中查询. 在使用LINQ 进行数据集操作时,LINQ 不能直接从数据集对象中查询,因为数据集对象不支持LINQ 查询,所以需要使用AsEnumerable 方法返回一个泛型的对象以支持LINQ 的查询操作.

LINQ中的陷阱--TakeWhile&SkipWhile

在用TakeWhile,SkipWhile设置陷阱之前,我们先来看一看他们的兄弟Take和Skip: public static IEnumerable<T> Take<T>(IEnumerable<T> source, int count) public static IEnumerable<T> Skip<T>(IEnumerable<T> source, int count) 这两个操作符从字面上看就能理解其含义.Take将枚举

LINQ分页和排序,skip和Take 用法

dbconn.BidRecord.OrderBy(p=>p.bid_id).ToList<BidRecord>().OrderBy(p => p.bid_id).Skip(skip).Take(take).ToList<BidRecord>(); 上面就是分页带排序的方法. 说一下问什么这样做 dbconn 是Modle的对象 BidRecord 是一个实体 P=〉p.bid_id 是排序的条件 OrderBy 是排序(后面是条件)然后要查询所有的,在所有的数据中在查询

Linq中join &amp; group join &amp; left join 的用法

Linq中join & group join & left join 的用法 2013-01-30 11:12 12154人阅读 评论(0) 收藏 举报  分类: C#(14)  文章转自:http://www.cnblogs.com/c-jquery-linq-sql-net-problem/archive/2011/01/17/LINQ_Inner_Join_Group_Join_Left_Join.html 我们在做SQL查询的时候经常会用到Inner Join,Left Join,

LINQ中的一些查询语句格式

LINQ的基本格式如下所示:var <变量> = from <项目> in <数据源> where <表达式> orderby <表达式> LINQ 基本子句from查询子句——基础后面跟随着项目名称和数据源示例代码如下:var str = from lq in str select lq; 其中select语句指定了返回到集合变量中的元素是来自哪个数据源的 from查询子句——嵌套查询可以在from子句中嵌套另一个from子句即可,示例代码如下

Linq中GroupBy方法的使用总结(转)

Group在SQL经常使用,通常是对一个字段或者多个字段分组,求其总和,均值等. Linq中的Groupby方法也有这种功能.具体实现看代码: 假设有如下的一个数据集: public class StudentScore { public int ID { set; get; } public string Name { set; get; } public string Course { set; get; } public int Score { set; get; } public str

Linq 中按照多个值进行分组(GroupBy)

Linq 中按照多个值进行分组(GroupBy) .GroupBy(x => new { x.Age, x.Sex }) group emp by new { emp.Age, emp.Sex } into g // 实现多key分组的扩展函数版本 var sums = empList .GroupBy(x => new { x.Age, x.Sex }) .Select(group => new { Peo = group.Key, Count = group.Count() });

Entity Framework 6 Recipes 2nd Edition(11-9)译 -&gt; 在LINQ中使用规范函数

11-9. 在LINQ中使用规范函数 问题 想在一个LINQ查询中使用规范函数 解决方案 假设我们已经有一个影片租赁(MovieRental )实体,它保存某个影片什么时候租出及还回来,以及滞纳金等,如Figure 11-9. 所示: Figure 11-9. The MovieRental entity that has the dates for a rental period along with any late fees 我们想取得所有租期超过10天的影片 如何创建和使用查询,如Lis