//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查询的更多相关文章

  1. Entity Framework 6 Recipes 2nd Edition(13-6)译 -> 自动编译的LINQ查询

    问题 你想为多次用到的查询提高性能,而且你不想添加额外的编码或配置. 解决方案 假设你有如Figure 13-8 所示的模型 Figure 13-8. A model with an Associat ...

  2. LinqToDB 源码分析——轻谈Linq查询

    LinqToDB框架最大的优势应该是实现了对Linq的支持.如果少了这一个功能相信他在使用上的快感会少了一个层次.本来笔者想要直接讲解LinqToDB框架是如何实现对Linq的支持.写到一半的时候却发 ...

  3. Linq查询基本操作

    摘要:本文介绍Linq查询基本操作(查询关键字) - from 子句 - where 子句 - select子句 - group 子句 - into 子句 - orderby 子句 - join 子句 ...

  4. C#基础:LINQ 查询函数整理

    1.LINQ 函数   1.1.查询结果过滤 :where() Enumerable.Where() 是LINQ 中使用最多的函数,大多数都要针对集合对象进行过滤,因此Where()在LINQ 的操作 ...

  5. 《Entity Framework 6 Recipes》中文翻译系列 (26) ------ 第五章 加载实体和导航属性之延缓加载关联实体和在别的LINQ查询操作中使用Include()方法

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 5-7  在别的LINQ查询操作中使用Include()方法 问题 你有一个LINQ ...

  6. Rafy 中的 Linq 查询支持(根据聚合子条件查询聚合父)

    为了提高开发者的易用性,Rafy 领域实体框架在很早开始就已经支持使用 Linq 语法来查询实体了.但是只支持了一些简单的.常用的条件查询,支持的力度很有限.特别是遇到对聚合对象的查询时,就不能再使用 ...

  7. c# Linq查询

    c#提供的ling查询极大的遍历了集合的查询过程,且使用简单方便,非常的有用. 下面将分别用简单的例子说明:ling基本查询.延迟查询属性.类型筛选.复合from字句.多级排序.分组查询.联合查询.合 ...

  8. Linq查询表达式

    目录 1. 概述 2. from子句 3. where子句 4. select子句 5. group子句 6. into子句 7. 排序子句 8. let子句 9. join子句 10. 小结 1. ...

  9. .NET LINQ查询操作中的类型关系

    LINQ 查询操作中的类型关系      若要有效编写查询,您应该了解完整的查询操作中的变量类型是如何全部彼此关联的. 如果您了解这些关系,就能够更容易地理解文档中的 LINQ 示例和代码示例. 另外 ...

  10. .NET LINQ查询语法与方法语法

    LINQ 查询语法与方法语法      通过使用 C# 3.0 中引入的声明性查询语法,介绍性 LINQ 文档中的多数查询都被编写为查询表达式. 但是,.NET 公共语言运行时 (CLR) 本身并不具 ...

随机推荐

  1. WPF:自定义路由事件的实现

    路由事件通过EventManager,RegisterRoutedEvent方法注册,通过AddHandler和RemoveHandler来关联和解除关联的事件处理函数:通过RaiseEvent方法来 ...

  2. Windows如何使用jstack跟踪异常代码

    维护服务器时,会出现java进程在CPU.内存.硬盘上总是出现异常情况. 如何找到是哪些代码出现这些异常呢? 本文使用jstack来实现这个需求 工具/原料   java jstack Process ...

  3. 第一天 django

    全栈增长工程师实战 http://growth-in-action.phodal.com/ 生成的代码和示例不一样,static 也要加上 from django.conf.urls import u ...

  4. PHPCMS V9多站点[站群功能]动态设置与静态设置子站内容URL

    今天我们来讲解下 PHPCMS V9的站群功能的 动态站点与静态站点的配置 站群站点,分为动态站点,和静态站点两种设置方法: 静态的,就是将栏目和内容都了HTML 文件,我们先讲解下,站群的操作: 建 ...

  5. C++ 模拟虚拟键盘按键表

    键盘VK键值列表 /* Virtual Keys, Standard Set*/ VK_LBUTTON                                      0x01 VK_RBU ...

  6. Java 7 Concurrency Cookbook 翻译 第一章 线程管理之五

    九.使用线程本地变量 一个并发程序的最关键特征就是共享数据.这个特性在那些继承了 Thread 类或者 实现了 Runnable 接口的对象上显得更加重要. 如果你创建一个实现了 Runnable 接 ...

  7. 关于JavaScript的浅拷贝和深拷贝

    在 JS 中有一些基本类型像是Number.String.Boolean,而对象就是像这样的东西{ name: 'Larry', skill: 'Node.js' },对象跟基本类型最大的不同就在于他 ...

  8. python 函数的调用 和执行 小知识

    1.符号表 执行一个函数会引入一个用于函数的局部变量的新符号表. 更确切地说, 函数中的所有的赋值都是将值存储在局部符号表: 而变量引用首先查找局部符号表, 然后是上层函数的局部符号表, 然后是全局符 ...

  9. style="visibility: hidden" 和 style=“display:none”区别

    大多数人很容易将CSS属性display和visibility混淆,它们看似没有什么不同,其实它们的差别却是很大的. visibility属性用来确定元素是显示还是隐藏的,这用visibility=& ...

  10. QT国际化 一 (lupdate/linguits/lrelease)

    QT国际化(lupdate/linguits/lrelease) 本文由乌合之众瞎写http://www.cnblogs.com/oloroso/ qt国际化其实就是qt中字符串的字符集编码的设置.当 ...