Linq使用之标准运算符方法
#region linq的标准查询运算符(即lambda方式) 注:C#不支持标准查询运算符中带有整形参数(索引)的重载
// 1、标准查询运算符之筛选方法——where
//IQueryable<Student> stu1=db.Student.Where(s => s.Ssex == "男");
//GridView1.DataSource = stu1;
//GridView1.DataBind();
// 2、标准查询运算符之s投影方法——select
//var stu2 =db.Student.Select(s => new {s.Sno,s.Sname,s.Sage}); //这叫匿名对象
//GridView2.DataSource = stu2;
//GridView2.DataBind();
//3、标准查询运算符之排序方法—— order
//升序排序
var stu3 = db.Student.OrderBy(s => s.Sage);
GridView1.DataSource = stu3;
GridView1.DataBind();
//降序排序之多条件排序
var stu4 = db.Student.OrderByDescending(s => s.Sage).ThenByDescending(s=>s.Sno);
GridView2.DataSource = stu4;
GridView2.DataBind();
//备注:OrderBy()和OrderDescendingBy()方法不会改变原列表 而是返回排序后的列表 这点是和Sort的不同之处之一。
//pers.Sort((p1, p2) => p1.Age - p2.Age); //按照Age升序排序
//4、标准运算符之连接集合—— Join
// 第一个参数:要连接的对象(B)第二个参数:A对象及A对象用来连接的字段;第三个参数:B对象及B对象用来连接的字段;第四个参数:A,B=>返回的对象
var stu5 = db.Student.Join(db.StuCourse, s => s.Sno, stu => stu.Sno, (s, stu) => new { Sno=s.Sno,SCSno=stu.Sno,s.Sname,stu.Cid});
GridView2.DataSource = stu5;
GridView2.DataBind();
//左连接
var leftJoin = from stu in db.Student
join sc in db.StuCourse
on stu.Sno equals sc.Sno
into temp
from t in temp.DefaultIfEmpty()
select new { stu.Sno, stu.Sage, Cid = t == null ? 0 : t.Cid };
//右连接
var right = from sc in db.StuCourse
join stu in db.Student
on sc.Sno equals stu.Sno
into temp
from tt in temp.DefaultIfEmpty()
select new { sc.Cid, sc.Sno, SName = tt == null ? "" : tt.Sname };
//5、标准运算符之分组——GroupBy
//按照年龄分组
var stu6 = db.Student.GroupBy<Student, int>(s => (int)s.Sage);
List<IGrouping<int, Student>> list2 = stu6.ToList();
foreach (IGrouping<int,Student> item in list2)
{
//输出 小组 的 分组条件
Response.Write(string.Format("小组:{0}<br/>",item.Key));
//遍历 小组里 所有的 元素
foreach (Student st in item)
{
Response.Write(string.Format("姓名:{0}", st.Sname));
}
Response.Write("<br/>");
}
//6、标准运算符之分页数据——Skip + Take
//假设每页有5条记录
// int pageSize = 2;
//return list.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
var pageOne = db.Student.Skip<Student>(24).Take(6);
GridView1.DataSource = pageOne;
GridView1.DataBind();
#endregion
附加:
int[] numbers = { 0, 30, 15, 90, 85, 40, 75,20, };
int[] arr = { };
int first = numbers.First<int>(m => m > 35); // 返回满足条件的第一条记录 90
int last = numbers.Last<int>(n => n < 40); //返回满足条件的最后一条记录 20
bool allResult = numbers.All<int>(mm => mm < 100); //判断所有元素是否都满足 true
bool allResult2 = numbers.All<int>(mm => mm>5); // false
bool anyResult = numbers.Any(); //numbers中有元素 就返回 true
bool anyResult1 = arr.Any(); //arr中没有元素 返回false
bool anyResult2 = numbers.Any<int>(mm => mm <1); // 只要有一个元素满足条件 就返回true
bool anyResult3 = numbers.Any<int>(mm => mm >89); //true
bool anyResult5 = numbers.Any(m => m > 200); //false
Linq使用之标准运算符方法的更多相关文章
- SQO (标准查询运算符)方法 & Linq To Object
#region SQO (标准查询运算符) 方法 #region Where() Find() FindAll() FirstOrDefault()等方法 static void c01where() ...
- 《Entity Framework 6 Recipes》中文翻译系列 (26) ------ 第五章 加载实体和导航属性之延缓加载关联实体和在别的LINQ查询操作中使用Include()方法
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 5-7 在别的LINQ查询操作中使用Include()方法 问题 你有一个LINQ ...
- mvc ef LINQ to Entities 不识别方法“Int32 Parse(System.String)”,因此该方法无法转换为存储表达式。
private sys_User GetUserInfo() { sys_User model = null; var userId = Convert.ToInt32(AccountHelper.G ...
- LINQ to Entities不识别方法***,因此该方法无法转换为存储表达式
我的程序里有这么一段代码: order.OrderExpressInfo = (from oei in orderExpressRepository.Entities where oei.OrderI ...
- LINQ to Entities 不识别方法“System.String ToString()”,因此该方法无法转换为存储表达式。
var data = DataSource.Skip(iDisplayStart).Take(iDisplayLength).Select(o => new { MatNR = o.MatNR, ...
- Linq中字段数据类型转换问题(Linq to entity,LINQ to Entities 不识别方法"System.String ToString()"问题解决)
1.在工作中碰到这样一个问题: 使用linq时,需要查询两个表,在这两张表中关联字段分别是int,和varchar()也就是string,在linq中对这两个字段进行关联, 如果强制类型转换两个不同类 ...
- [置顶] IOS7状态栏StatusBar官方标准适配方法
IOS7状态栏StatusBar官方标准适配方法 hello,大家好,ios7正式版已经发布,相信大家都在以各种方式来适配ios7. 如果你已经下载了xcode5,正准备使用,你会发现各种布局的改变. ...
- Linq to Entities不识别方法
db.UserValidates.Include(a => a.User).Where(uv => u.UserValidates.Contains(uv, c)).ToList(); 执 ...
- LINQ to Entities 不识别方法“System.DateTime AddDays(Double)
今天本想在linq里按照时间筛选一下超时的数据,一共两个字段FeedBackTime(计划反馈时间).EndTime(实际反馈时间).需求是这样的,查找数据库里所有EndTime大于FeedBackT ...
随机推荐
- java内存模型 年轻代/年老代 持久区
jvm中的年轻代 老年代 持久代 gc 虚拟机中的共划分为三个代:年轻代(Young Generation).老年代(Old Generation)和持久代(Permanent Generatio ...
- jquery的ajax和原始的ajax这两种方式的使用方法
jquery的ajax是对原始的ajax进行的封装,方便用户的使用.下面用代码分别举例各自的使用方式. jquery的ajax发送和接收xml数据格式. $.ajax({ type: "PU ...
- Source Insight的应用技巧、宏功能
目录 1 简介... 5 2 搭建我们的SI环境... 5 2.1 搭建步骤... 5 2.2 说明... 6 3 应用技巧... 6 3.1 初级应用技巧... 6 3.1.1 解决字体不等宽与对齐 ...
- 15个必知的Android开发者选项
Android开发者选项,看起来很简单的事情,其实很多同学对它了解得不够,Google用心良苦得为我们设计了这么多小开关都是有它的作用的,今天也花了点时间,过了一遍全部的30多个开关,从中整理出15个 ...
- matlab 中保存某几个变量
save AOA.mat dingjiao RMSE%保存变量dingjiao,RMSE于AOA.mat clear all;%当删除所有数据之后 load AOA.mat%还可以读出这两个变量的数 ...
- HDU4614【线段树。】
果然看了理解了一下大牛的代码然后自己敲结果果然有不少错误 回复说,线段树做为一种数据结构,最好以一种风格过一题裸的然后作为自己的模板.. 二分写的也很恶心哪 还有题目稍复杂一点的注定得推敲各种公式,不 ...
- lib库依赖解决
当前环境之前是装过MySQL官方版本5.6.22,想测试Percona版本MySQL.启动Percona-MySQL报错. [root@dg7 support-files]# /etc/init.d/ ...
- Json时间格式转换问题
很多时候在数据库中取出数据,需要用Json来接收,但是接受出来的数据竟然是:/Date(1386040883000+0800)/ 这种格式. 这个时候就需要将Json格式,转换成Javascript格 ...
- 【转】angular学习笔记(十四)-$watch(1)
本篇主要介绍$watch的基本概念: $watch是所有控制器的$scope中内置的方法: $scope.$watch(watchObj,watchCallback,ifDeep) watchObj: ...
- 一滴一点vim(学习+备忘)
普通模式: h j k l 分别是左下上右方式移动: :w 保存修改 :q 推出 :wq 保存修改并退出 :q! 放弃修改强制推出 x 删除光标所在位置字符 i 在光标所以位置插入字符 删除类命令: ...