asp.net Linq 实现分组查询
来源:互联网 发布:淘宝美工修图视频 编辑:程序博客网 时间:2024/05/14 09:13
首先我们还是先建立一个person.cs类
public class person
{
public string name
{ get; set; }
public int age
{ get; set; }
public string sex
{ get; set; }
}
接下来我们往这个person类添加数据:
List<person> plist1 = new List<person>();
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<person> plist2 = new List<person>();
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 类。
/// <summary>
/// 手机列表
/// </summary>
public class MobileStore
{
public string mobId
{ set; get; }
public string mobName
{ set; get; }
}
/// <summary>
/// 手机销售表
/// </summary>
public class MobileSale
{
public string Sid
{ set; get; }
public string mobId
{ set; get; }
public string mobName
{ set; get; }
public string price
{ set; get; }
}
List<MobileStore> listStore = new List<MobileStore>();
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<MobileSale> listSale = new List<MobileSale>();
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();
- asp.net Linq 实现分组查询
- asp.net Linq 实现分组查询
- asp.net Linq 实现分组查询
- LINQ分组查询统计
- LINQ分组查询统计
- 使用LINQ查询ASP.NET中的Sitemap
- asp.net DataTable,List for Linq(分组 求和 排序)
- .NET LINQ 数据分组
- linq带条件分组查询.
- C#中linq 分组查询
- asp.net Linq分页实现代码
- ASP.NET中Linq查询数据的用法
- ASP.NET LINQ _1
- ASP.NET LINQ _2
- ASP .NET MVC LINQ
- ElasticSearch.net分组查询
- 分页 分组等Linq查询语句例子
- 关于linq的分组查询语法
- Centos安装oracle10g
- android 网络编程 HttpGet类和HttpPost类使用详解
- K-means算法及其示例
- delphi的消息对话框,输入输出
- Linux 线程调试
- asp.net Linq 实现分组查询
- destoon 调用头部用户登录信息(头部“欢迎,游客”信息调用)
- ArcGIS(1)——ArcGIS Runtime
- google全程面试题目【转】
- SQL Server 解决 "无法执行该操作,因为链接服务器 的 OLE DB 访问接口 "SQLNCLI10" 无法启动分布式事务"
- UltraEdit破解[转载]
- ioctl实现的打印终端窗口大小
- php date
- Class Diagram(类图)——UML