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...的疑问的主要内容,如果未能解决你的问题,请参考以下文章

mysql 的 IN 语句 疑问

asp.net C# 中关于 var 类型的疑问?

django+javascrip的疑问一

关于sql查询中的like用法疑问?

课后疑问

我对数据库有疑问 - 你能帮帮我吗?