首先我们还是先建立一个person.cs类

public class person
{
  public string name
  { get; set; }
  public int age
  { get; set; }
  public string sex
  { get; set; }
}

接下来我们往这个person类添加数据:

List plist1 = new List();
  plist1.Add(new person { name = "cxx1", age = , sex = "男" });
  plist1.Add(new person { name = "www.baidu.com", age = , sex = "男" });
  plist1.Add(new person { name = "www.52mvc.com", age = , sex = "男" });
  List plist2 = new List();
  plist2.Add(new person { name = "cxx1", age = , sex = "男" });
  plist2.Add(new person { name = "cxx2", age = , sex = "男" });
  plist2.Add(new person { name = "cxx4", age = , sex = "男" });
  plist2.Add(new person { name = "cxx5", age = , sex = "男" });
  // asp.net
  var query = from person p in plist1
  join person per in plist2
  on p.name equals per.name
  select new
  {
  名称=p.name,
  性别=p.sex,
  年龄=p.age
  };
  gd2.DataSource = query;
  gd2.DataBind();

返回的结果是:

  备注:这个方法是要查找出 plist1 与 plist2 之中,name名称有相同记录的数据。
  

接下来我们来看看sql中的左连接left join 在linq中如何实现
  还是先来创建两个cs 类。

///
/// 手机列表
///
public class MobileStore
{
  public string mobId
  { set; get; }
  public string mobName
  { set; get; }
}
/// 手机销售表
  ///
  public class MobileSale
  {
  public string Sid
  { set; get; }
  public string mobId
  { set; get; }
  public string mobName
  { set; get; }
  public string price
  { set; get; }
  }
  List listStore = new List();
  listStore.Add(new MobileStore { mobId = "", mobName = "N86" });
  listStore.Add(new MobileStore { mobId = "", mobName = "N82" });
  listStore.Add(new MobileStore { mobId = "", mobName = "N81" });
  listStore.Add(new MobileStore { mobId = "", mobName = "N95" });
  listStore.Add(new MobileStore { mobId = "", mobName = "N85" });
  listStore.Add(new MobileStore { mobId = "", mobName = "N97" });
  List listSale = new List();
  listSale.Add(new MobileSale { Sid="" ,mobId="",mobName="N86",price=""});
  listSale.Add(new MobileSale { Sid="", mobId = "", mobName = "N82",price="" });
  listSale.Add(new MobileSale { Sid = "", mobId = "", mobName = "N81", price = "" });
  var query = from MobileStore m in listStore
  join MobileSale sale in listSale
  on m.mobId equals sale.mobId into joinm
  from j in joinm.DefaultIfEmpty()
  select new
  {
  ID = m.mobId,
  名称 = m.mobName,
  价格 = j == null ? "暂无数据" : j.price,
  };
  gd.DataSource = query;
  gd.DataBind();

asp.net Linq 实现分组查询的更多相关文章

  1. linq中分组查询而且获取每个分组中的第一条记录,数据用于分页绑定

    LINQ分组取出第一条数据 Person1: Id=1, Name="Test1" Person2: Id=1, Name="Test1" Person3: I ...

  2. LINQ to Entities 查询语法

    转自: http://www.cnblogs.com/asingna/archive/2013/01/28/2879595.html 实体框架(Entity Framework )是 ADO.NET  ...

  3. MVC项目实践,在三层架构下实现SportsStore-09,ASP.NET MVC调用ASP.NET Web API的查询服务

    ASP.NET Web API和WCF都体现了REST软件架构风格.在REST中,把一切数据视为资源,所以也是一种面向资源的架构风格.所有的资源都可以通过URI来唯一标识,通过对资源的HTTP操作(G ...

  4. 浅谈sql 、linq、lambda 查询语句的区别

    浅谈sql .linq.lambda 查询语句的区别 LINQ的书写格式如下: from 临时变量 in 集合对象或数据库对象 where 条件表达式 [order by条件] select 临时变量 ...

  5. LinQ to SQL 查询

    LINQ to SQL 是将对象关系映射到.NET框架中的一种实现.它可以将关系数据库映射为.NET Framework中的一些类. 然后,开发人员就可以通过使用 LINQ to SQL对数据库中的数 ...

  6. C# - LINQ 语言集成查询

    LINQ(Language Integrated Query) LINQ语言集成查询是一组用于C#语言的扩展.它允许编写C#代码对数据集进行查询,比如查询内存中的对象或查询远程数据库的表.利用linq ...

  7. C#编程(六十二)---------LINQ标准的查询操作符

    LINQ标准的查询操作符 首先我们来看一下LINQ的操作符,可根据查询操作符的操作”类型”进行分类,如把它们分成投影,限制,排序,联接,分组,串联,聚合,集合,生成,转换,元素,相等,量词,分割等. ...

  8. CASE函数 sql server——分组查询(方法和思想) ref和out 一般处理程序结合反射技术统一执行客户端请求 遍历查询结果集,update数据 HBuilder设置APP状态栏

    CASE函数   作用: 可以将查询结果集的某一列的字段值进行替换 它可以生成一个新列 相当于switch...case和 if..else 使用语法: case 表达式/字段 when 值 then ...

  9. MySQL时间分组查询

    表TESTER 字段:id -- INT    date  -- TIMESTAMP 1.如何按年.月.日分组查询? select DATE_FORMAT(date,'%Y-%m-%d') time, ...

随机推荐

  1. 常用js效果:选项卡切换

    js选项卡,很多网站都会用到,我这里用jquery给整了一个简单但是却很实用的js选项卡,废话不多说,直接上代码: <style> .txtadsblk01{ width:200px;} ...

  2. Nginx+tomcat负载均衡并动静态分离

    Nginx使用正则表达式配置location,指定某些后缀的文件直接从文件路径中找(如*.jpg直接去C:/XX/XX/XX/img下找),其他的请求转发给tomcat 同时可以配置多个tomcat ...

  3. STM32 IAP 在线更新程序 为什么有时行 有时又不行 感觉不可靠 问题解决

    搞了一天才发现 在MDK设置选项中有个"linker"选项卡 , 需要在Project->Options->Linker中将Use Memory Layout from ...

  4. iOS开发总结-UITableView 自定义cell和动态计算cell的高度

    UITableView cell自定义头文件:shopCell.h#import <UIKit/UIKit.h>@interface shopCell : UITableViewCell@ ...

  5. How to easily concatenate text based on criteria in Excel? 如何将Excel中的文本按条件合并

    To combine text with the unique ID numbers, you can extract the unique values first and then create ...

  6. Centos安装成功mysql-5.5.37

    摘自http://www.2cto.com/os/201404/296364.html(原文请关注) 这几天在centos下装mysql,这里记录一下安装的过程,方便以后查阅 Mysql5.5.37安 ...

  7. iOS 如何做才安全--逆向工程 - Reveal、IDA、Hopper、https抓包 等

    http://www.cnblogs.com/dahe007/p/5546990.html

  8. careercup-链表 2.7

    2.7 编写一个函数,检查链表是否为回文. 思路:1)可以利用链表中的元素采用头插法创建一个新的链表,然后比较两个链表的元素是否相等.   2)利用快慢指针,将链表后半部分逆转之后,比较前半部分与后半 ...

  9. float与double的范围和精度(摘录)

    什么是浮点数在计算机系统的发展过程中,曾经提出过多种方法表达实数.典型的比如相对于浮点数的定点数(Fixed Point Number).在这种表达方式中,小数点固定的位于实数所有数字中间的某个位置. ...

  10. 功能模块图、业务流程图、处理流程图、ER图,数据库表图(概念模型和物理模型)画法

    如果你能使用计算机规范画出以下几种图,那么恭喜你,你在我这里被封为学霸了,我膜拜ing-- 我作为前端开发与产品经理打交道已有5-6年时间,产品经理画的业务流程图我看过很多.于是百度搜+凭以往经验脑补 ...