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中,使后面的子句可以方便的使用,进行再一次的查询,排序,投影等操作。