Linq查询
//Linq查询
List<A1> a1 = new List<A1>();
a1.Add(new A1 { Id = , Name = "aaa", Age = , Gender = true });
a1.Add(new A1 { Id = , Name = "bbb", Age = , Gender = true });
a1.Add(new A1 { Id = , Name = "ccc", Age = , Gender = false });
a1.Add(new A1 { Id = , Name = "ddd", Age = , Gender = false });
List<DogToy> a2 = new List<DogToy>();
a2.Add(new DogToy { DogId = , DogName = "小白" });
a2.Add(new DogToy { DogId = , DogName = "小欢" });
a2.Add(new DogToy { DogId = , DogName = "小美" });
a2.Add(new DogToy { DogId = , DogName = "小王" }); //查询所有语句
var s1 = (from c in a1 select c).ToList();
//查询Gender为false的成员
var s2 = from c in a1 where c.Gender == false select c;
//orderby排序
var s3 = from c in a1 orderby c.Id select c;
//Join连接两个集合相匹配元素,注意:连接条件使用equals关键字!!!
var s4 = from c in a1 join t in a2 on c.Id equals t.DogId select new { A1Name = c.Name, DogName = t.DogName };
//Join连接两个集合所有元素
var s5 = from c in a1 join t in a2 on c.Id equals t.DogId select new { A1Name = c, DogName = t };
//分组group...by
var s6 = from c in a1 group c by c.Gender;
foreach (var group in s6)
{
Console.WriteLine(group.Key.ToString());
foreach (var item in group)
{
Console.WriteLine(item.ToString());
}
} public class A1
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public bool Gender { get; set; }
//重写ToString方法
public override string ToString()
{
return Id + "," + Name + "," + Age + "," + Gender;
}
} public class DogToy
{
public int DogId { get; set; }
public string DogName { get; set; }
//重写ToString方法
public override string ToString()
{
return DogId + "," + DogName;
}
}
//Linq查询例子:
var count = (from u in db.Users where u.Name == userName && u.Pwd == userPwd select u).ToList();//得到一个集合数量,获取用户输入的用户名与密码是否与数据库匹配
var query = (from u in db.Users orderby u.Pwd ascending select u).ToList();//升序排序
var query = (from u in db.Users orderby u.Pwd descending select u).ToList();//降序排序
var query = (from u in db.Users group u by u.Gender).ToList();//将Gender分组
foreach (var group in query)
{
Console.WriteLine("小组:"+group.Key);//各小组
foreach (var item in group)
{
Console.WriteLine(item.ToString());//小组成员
}
}
MethodInfo[] methods = typeof(string).GetMethods();
//第一种方法,获取所有string方法并去除重复的方法
var result = (from m in methods
where m.IsStatic != true
select m.Name).Distinct().ToList();
//第二种方法,用group by
var result1 = (from m in methods
where m.IsStatic != true
group m by m.Name into g
select new { MethodName = g.Key, Overload = g.Count() }).ToList();
//分页
var list1 = db.Users.ToList();
var first = (from c in list1 select c).Skip().Take().ToList();
//封装分页方法
static List<T> GetPagedListByIndex<T>(List<T> groupList,int pageIndex)
{
int pageSize = ;
var first = (from c in groupList select c).Skip((pageIndex - ) * pageSize).Take(pageSize).ToList();
//return groupList.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
return first;
}
//Join内连接,没有分类的产品查询不到
var innerjoin = from p in ctx.Products
join c in ctx.Categories
on p.CategoryID equals c.CategoryID
select p.ProductName;
//外连接,没有分类的产品也能查询到
var leftjoin = from p in ctx.Products
join c in ctx.Categories
on p.CategoryID equals c.CategoryID
into pro
from x in pro.DefaultIfEmpty()
select p.ProductName;
Linq查询的更多相关文章
- Entity Framework 6 Recipes 2nd Edition(13-6)译 -> 自动编译的LINQ查询
问题 你想为多次用到的查询提高性能,而且你不想添加额外的编码或配置. 解决方案 假设你有如Figure 13-8 所示的模型 Figure 13-8. A model with an Associat ...
- LinqToDB 源码分析——轻谈Linq查询
LinqToDB框架最大的优势应该是实现了对Linq的支持.如果少了这一个功能相信他在使用上的快感会少了一个层次.本来笔者想要直接讲解LinqToDB框架是如何实现对Linq的支持.写到一半的时候却发 ...
- Linq查询基本操作
摘要:本文介绍Linq查询基本操作(查询关键字) - from 子句 - where 子句 - select子句 - group 子句 - into 子句 - orderby 子句 - join 子句 ...
- C#基础:LINQ 查询函数整理
1.LINQ 函数 1.1.查询结果过滤 :where() Enumerable.Where() 是LINQ 中使用最多的函数,大多数都要针对集合对象进行过滤,因此Where()在LINQ 的操作 ...
- 《Entity Framework 6 Recipes》中文翻译系列 (26) ------ 第五章 加载实体和导航属性之延缓加载关联实体和在别的LINQ查询操作中使用Include()方法
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 5-7 在别的LINQ查询操作中使用Include()方法 问题 你有一个LINQ ...
- Rafy 中的 Linq 查询支持(根据聚合子条件查询聚合父)
为了提高开发者的易用性,Rafy 领域实体框架在很早开始就已经支持使用 Linq 语法来查询实体了.但是只支持了一些简单的.常用的条件查询,支持的力度很有限.特别是遇到对聚合对象的查询时,就不能再使用 ...
- c# Linq查询
c#提供的ling查询极大的遍历了集合的查询过程,且使用简单方便,非常的有用. 下面将分别用简单的例子说明:ling基本查询.延迟查询属性.类型筛选.复合from字句.多级排序.分组查询.联合查询.合 ...
- Linq查询表达式
目录 1. 概述 2. from子句 3. where子句 4. select子句 5. group子句 6. into子句 7. 排序子句 8. let子句 9. join子句 10. 小结 1. ...
- .NET LINQ查询操作中的类型关系
LINQ 查询操作中的类型关系 若要有效编写查询,您应该了解完整的查询操作中的变量类型是如何全部彼此关联的. 如果您了解这些关系,就能够更容易地理解文档中的 LINQ 示例和代码示例. 另外 ...
- .NET LINQ查询语法与方法语法
LINQ 查询语法与方法语法 通过使用 C# 3.0 中引入的声明性查询语法,介绍性 LINQ 文档中的多数查询都被编写为查询表达式. 但是,.NET 公共语言运行时 (CLR) 本身并不具 ...
随机推荐
- WPF:自定义路由事件的实现
路由事件通过EventManager,RegisterRoutedEvent方法注册,通过AddHandler和RemoveHandler来关联和解除关联的事件处理函数:通过RaiseEvent方法来 ...
- Windows如何使用jstack跟踪异常代码
维护服务器时,会出现java进程在CPU.内存.硬盘上总是出现异常情况. 如何找到是哪些代码出现这些异常呢? 本文使用jstack来实现这个需求 工具/原料 java jstack Process ...
- 第一天 django
全栈增长工程师实战 http://growth-in-action.phodal.com/ 生成的代码和示例不一样,static 也要加上 from django.conf.urls import u ...
- PHPCMS V9多站点[站群功能]动态设置与静态设置子站内容URL
今天我们来讲解下 PHPCMS V9的站群功能的 动态站点与静态站点的配置 站群站点,分为动态站点,和静态站点两种设置方法: 静态的,就是将栏目和内容都了HTML 文件,我们先讲解下,站群的操作: 建 ...
- C++ 模拟虚拟键盘按键表
键盘VK键值列表 /* Virtual Keys, Standard Set*/ VK_LBUTTON 0x01 VK_RBU ...
- Java 7 Concurrency Cookbook 翻译 第一章 线程管理之五
九.使用线程本地变量 一个并发程序的最关键特征就是共享数据.这个特性在那些继承了 Thread 类或者 实现了 Runnable 接口的对象上显得更加重要. 如果你创建一个实现了 Runnable 接 ...
- 关于JavaScript的浅拷贝和深拷贝
在 JS 中有一些基本类型像是Number.String.Boolean,而对象就是像这样的东西{ name: 'Larry', skill: 'Node.js' },对象跟基本类型最大的不同就在于他 ...
- python 函数的调用 和执行 小知识
1.符号表 执行一个函数会引入一个用于函数的局部变量的新符号表. 更确切地说, 函数中的所有的赋值都是将值存储在局部符号表: 而变量引用首先查找局部符号表, 然后是上层函数的局部符号表, 然后是全局符 ...
- style="visibility: hidden" 和 style=“display:none”区别
大多数人很容易将CSS属性display和visibility混淆,它们看似没有什么不同,其实它们的差别却是很大的. visibility属性用来确定元素是显示还是隐藏的,这用visibility=& ...
- QT国际化 一 (lupdate/linguits/lrelease)
QT国际化(lupdate/linguits/lrelease) 本文由乌合之众瞎写http://www.cnblogs.com/oloroso/ qt国际化其实就是qt中字符串的字符集编码的设置.当 ...