当前位置: 首页 > 编程语言 > C# > 正文

C# 3.0入门系列(五)-之Where操作

时间:2010-06-13 博客园 Tom Song

从本节开始,本文正式更名为C#3.0入门系列。先发布一则消息,VS2007 Beta版本已经发布咯,下载地址:

http://www.microsoft.com/downloads/details.aspx?FamilyID=1FF0B35D-0C4A-40B4-915A-5331E11C39E6&displaylang=en

大家快去下载呀,我也好和大家一起体验该版本最新功能呀。

dlinq也更名为linq to sql.本文也跟着做相应变化,稍候,我会去更新前面的文章。我们先接着讲linq的语法。

Select操作

最简单的

1, var q =
from c in db.Customers
select c.ContactName;

匿名类的

1,   var q =
from c in db.Customers
select new {c.ContactName, c.Phone};
2, var q =
from e in db.Employees
select new {Name = e.FirstName + " " + e.LastName, Phone = e.HomePhone};
3, var q =
from p in db.Products
select new {p.ProductID, HalfPrice = p.UnitPrice / 2};

条件的

var q =
from p in db.Products
select new {p.ProductName, Availability = p.UnitsInStock - p.UnitsOnOrder < 0 ? "Out Of Stock": "In Stock"};

这种条件的会被翻译成sql中{case when condition then else}的。

name type形式的:

var q =
from e in db.Employees
select new Name {FirstName = e.FirstName, LastName = e.LastName};

只所以是name type的,是因为Name类是已经定义好的,也就是说,你可以用这种方式,返回你需要类型的对象集.

shaped形式的:

var q =
from c in db.Customers
select new {
c.CustomerID,
CompanyInfo = new {c.CompanyName, c.City, c.Country},
ContactInfo = new {c.ContactName, c.ContactTitle}
};