//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. Wdcp在安装memcached出现错误的解决办法

    今天在安装memcached时出现了以下错误(tar: libevent-1.4.14b-stable.tar.gz: Cannot open: No such file or directory), ...

  2. 全文检索引擎Solr系列——整合MySQL、MongoDB

    MySQL 拷贝mysql-connector-java-5.1.25-bin.jar到E:\solr-4.8.0\example\solr-webapp\webapp\WEB-INF\lib目录下面 ...

  3. 1.2 从 ACID 到 CAP/BASE

    1.事务 事务(Tranction)是指,由一系列对系统中数据进行访问与更新操作,所组成的一个逻辑执行单元.狭义上的事务是指数据库事务. 事务有四个特性. 原子性:原子性要求事务只允讲有两种状态,全部 ...

  4. Javascript高级程序设计——执行环境与作用域

    Javascript中执行环境是定义了变量或函数有权访问的其他数据,决定了各自的行为,每个执行的环境都有一个与之关联的变量对象,环境中定义的所以变量和函数都保存在这个对象中. 全局执行环境是最外围的一 ...

  5. jquery左右滑动效果的实现

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. 关于ListView中notifyDataSetChanged()刷新数据不更新原因

    使用Listview的时候: 当要动态显示更改后的数据(例如数据库改动), 很多人应该都用过notifyDataSetChanged();这个方法来刷新Listview,显示改后的数据. 这时候就要注 ...

  7. mongodb安装 window

    安装MongoDB 1.按照操作系统下载http://www.mongodb.org/downloads. 2.在D盘新建MongoDB文件夹(此文件夹为自定义的数据库安装目录D:\MongoDB)把 ...

  8. HTML5 localStorage 的使用

      在前端开发中,我们会常遇到要在两个甚至多个html之间通信,我们可以在url中添加参数,但是当要传递的数据量较大较多时呢,不妨试试html5 的localStorage吧. 1) 检测你的浏览器是 ...

  9. 跟着百度学PHP[4]OOP面对对象编程-6-构造方法(__construct)和构析方法(__destruct)

    函数就是成员方法(方法有三:构造方法.成员方法.析构方法) 下面是两种方法. 构造方法和构析方法 00x1 构造方法 构造方法会在创建对象之后自动调用.其名称为__construct <?php ...

  10. 寻找下一款Prisma APP:深度学习在图像处理中的应用探讨(阅读小结)

    原文链接:https://yq.aliyun.com/articles/61941?spm=5176.100239.bloglist.64.UPL8ec 某会议中的一篇演讲,主要讲述深度学习在图像领域 ...