Linq基本子句介绍-语法之group

Linq中的查询语句要以from开始,以select或者是group来结束,返回结果集。

group用来返回分组后的结果。

group返回的 IGrouping<out TKey, out TElement> 类型的数据。TKey为每一组的键,TElement为每一组中是数据项。

例子如下:

一、首先创建控制台应用程序:DemoGroup_1

class Program
{
static void Main(string[] args)
{
// 填充数据
List<PersonInfo> pList = new List<PersonInfo>()
{
new PersonInfo{ Name="周瑜", Country="", Official="都督", Salary=8000},
new PersonInfo{ Name="典韦", Country="", Official="上将", Salary=8000},
new PersonInfo{ Name="张飞", Country="", Official="上将", Salary=10000},
new PersonInfo{ Name="曹操", Country="", Official="皇帝", Salary=10000},
new PersonInfo{ Name="许褚", Country="", Official="上将", Salary=8000},
new PersonInfo{ Name="关羽", Country="", Official="上将", Salary=10000},
new PersonInfo(){ Name="刘备", Country="", Official="皇帝", Salary=10000},
new PersonInfo{ Name="孙权", Country="", Official="皇帝", Salary=10000},
new PersonInfo{ Name="陆逊", Country="", Official="都督", Salary=8000}

};

var query = from result in pList
group result by result.Country;

//遍历分组数据
foreach (IGrouping<string, PersonInfo> guestGroup in query)
{
//输出当前分组的键值
Console.WriteLine(string.Format("分组键:{0} \n", guestGroup.Key));

//遍历组内元素
foreach (var g in guestGroup)
Console.WriteLine(string.Format("{0}的薪水是:{1}", g.Name, g.Salary));
Console.WriteLine("\n**********************************\n");
}

Console.ReadKey();

//按照薪水
var query_1 = from result in pList
group result by result.Salary > 8000;


//遍历分组数据
foreach (var guestGroup in query_1)
{
//输出当前分组的键值
Console.WriteLine(string.Format("薪水是否是大于8000:{0} \n", guestGroup.Key));

//遍历组内元素
foreach (var g in guestGroup)
Console.WriteLine(string.Format("{0} 的薪水是:{1}", g.Name, g.Salary));
Console.WriteLine("\n**********************************\n");
}

Console.ReadKey();
}
}

运行:

点击回车:


 

 

 

转载于:https://www.cnblogs.com/zhangzhensoft/archive/2012/02/26/2369087.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值