into 子句作为一个临时标识符,用于group,select,join子句中

例子:

一、创建控制台引用程序Demo_into

class Program
{
static void Main(string[] args)
{
// 填充数据 PersonInfo 为实体类,代码见前面,这里就不赘述了。
List<PersonInfo> pList = new List<PersonInfo>()
{
new PersonInfo{ Name="周瑜", Country="", Official="都督", Salary=8000},
new PersonInfo{ Name="典韦", Country="", Official="上将", Salary=6000},
new PersonInfo{ Name="张飞", Country="", Official="上将", Salary=6700},
new PersonInfo{ Name="曹操", Country="", Official="皇帝", Salary=12000},
new PersonInfo{ Name="许褚", Country="", Official="上将", Salary=8000},
new PersonInfo{ Name="关羽", Country="", Official="上将", Salary=8800},
new PersonInfo(){ Name="刘备", Country="", Official="皇帝", Salary=10000},
new PersonInfo{ Name="孙权", Country="", Official="皇帝", Salary=11000},
new PersonInfo{ Name="陆逊", Country="", Official="都督", Salary=8001}

};

var query = from result in pList
group result by result.Country into tmpGroup
orderby tmpGroup.Key descending
select tmpGroup;

//遍历分组数据
foreach (var 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
select new { NewName = result.Name, NewSalary = result.Salary } into newList // 将查询结果存放到一个新的匿名对象中(NewName,NewSalary),并将该匿名对象存放在newList中
orderby newList.NewSalary descending // 排序newList中的对象
select newList;

//遍历分组数据
foreach (var g in query_1)
{
Console.WriteLine(string.Format("{0} 的薪水为:{1}", g.NewName, g.NewSalary));
}

Console.ReadKey();

}
}

运行:

输入回车:

总结:into XXX,提供了一个临时标识符,将前面的查询结果保存到标识符XXX中,使后面的子句可以方便的使用,进行再一次的查询,排序,投影等操作。

 

posted on 2012-02-26 22:46  金丝猴  阅读(313)  评论(0编辑  收藏  举报