• asp.net Linq 实现分组查询


    首先我们还是先建立一个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 = 24, sex = "" });
      plist1.Add(new person { name = "www.baidu.com", age = 25, sex = "" });
      plist1.Add(new person { name = "www.52mvc.com", age = 26, sex = "" });
      List plist2 = new List();
      plist2.Add(new person { name = "cxx1", age = 24, sex = "" });
      plist2.Add(new person { name = "cxx2", age = 28, sex = "" });
      plist2.Add(new person { name = "cxx4", age = 27, sex = "" });
      plist2.Add(new person { name = "cxx5", age = 28, 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 = "1", mobName = "N86" });
      listStore.Add(new MobileStore { mobId = "2", mobName = "N82" });
      listStore.Add(new MobileStore { mobId = "3", mobName = "N81" });
      listStore.Add(new MobileStore { mobId = "4", mobName = "N95" });
      listStore.Add(new MobileStore { mobId = "5", mobName = "N85" });
      listStore.Add(new MobileStore { mobId = "6", mobName = "N97" });
      List listSale = new List();
      listSale.Add(new MobileSale { Sid="1" ,mobId="1",mobName="N86",price="100"});
      listSale.Add(new MobileSale { Sid="2", mobId = "2", mobName = "N82",price="220" });
      listSale.Add(new MobileSale { Sid = "3", mobId = "3", mobName = "N81", price = "300" });
      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();
  • 相关阅读:

    Android自己主动化測试之Monkeyrunner用法及实例
    递归函数的概念使用方法与实例
    正则、grep、sed、awk
    我的java学习笔记(一)
    mysql经常使用命令总结
    JSP动作--JSP有三种凝视方式
    http长连接和短连接
    StirngUtil工具类 之 邮箱注冊 域名不区分大写和小写方法
    在Eclipse上搭建Cocos2d-x的Android开发环境
  • 原文地址:https://www.cnblogs.com/vip-ygh/p/3614291.html
Copyright © 2020-2023  润新知