linq 里select new...的疑问
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linq 里select new...的疑问相关的知识,希望对你有一定的参考价值。
NorthwindDataContext dc = new NorthwindDataContext(); var rs = from c in dc.Customers from o in c.Orders where o.ShipCity.StartsWith("B") select new CustomerName = c.ContactName, OrderID = o.OrderID ;经常看到select new .. 很是不解。请问如果上面得代码段的select new .. 改成select c后又什么区别。帮忙举例说明下好吗?
select new 出来的是一个匿名对象,也就是包含c.ContactName跟o.OrderID这两个字段的对象。如果你直接select c,只能选择Customers 中的字段,无法提取Orders 中的,而你的查询结果要求同时提取Customer的ContactName跟Order的OrderID 。 参考技术A select new student(t.name,t.sex)from student t
new student new一个对象,比如:HQL查询出来的结果集是Object类型的集合 ,想迭代得到每一个student对象,object怎么转成实体对象?这时就需要 select new 实体对象....,但是必须要在student实体类里面写一个构造函数,如:public student(这里的参数就是查询的列:如:name,sex)......
Linq 中按照多个值进行分组(GroupBy)
Linq 中按照多个值进行分组(GroupBy) .GroupBy(x => new { x.Age, x.Sex }) group emp by new { emp.Age, emp.Sex } into g // 实现多key分组的扩展函数版本 var sums = empList .GroupBy(x => new { x.Age, x.Sex }) .Select(group => new { Peo = group.Key, Count = group.Count() }); foreach (var employee in sums) { Console.WriteLine(employee.Count + ": " + employee.Peo); } // 实现多key分组的lambda版本 var sums2 = from emp in empList group emp by new { emp.Age, emp.Sex } into g select new { Peo = g.Key, Count = g.Count() }; foreach (var employee in sums) { Console.WriteLine(employee.Count + ": " + employee.Peo); }
以上是关于linq 里select new...的疑问的主要内容,如果未能解决你的问题,请参考以下文章