在向大家详细介绍Linq查询表达式之前,首先让大家了解下什么是Linq查询表达式,然后全面介绍Linq查询表达式。
Linq查询表达式
于是,语言设计团队设计了一种与 SQL 更为相近的语法,称为Linq查询表达式。例如,针对我们的示例的Linq查询表达式可如下所示:
- var locals = from c in customers
- where c.ZipCode == 91822
- select new { FullName = c.FirstName + “ “ +
- c.LastName, HomeAddress = c.Address };
Linq查询表达式是基于上述语言功能构建而成。它们在语法上,完全转换为我们已经看到的基础语法。例如,上述查询可直接转换为:
- var locals = customers.Where(c => c.ZipCode == 91822).Select(c => new
- {
- FullName = c.FirstName + “ " +c.LastName, HomeAddress = c.Address });
Linq查询表达式支持许多不同的“子句”,如 from、where、select、orderby、group by、let 和 join。这些子句先转换为对等的运算符调用,后者进而通过扩展方法实现。如果查询语法不支持必要运算符的子句,则查询子句和实现运算符的扩展方法之间的紧密关系很便于将两者结合。例如:
- var locals = (from c in customers where c.ZipCode == 91822 select new {
FullName = c.FirstName + “ " + c.LastName, HomeAddress = c.Address}) .Count();
通过该种方法,我们已经设法在结束时达到了开始时的目标(我对这一点始终觉得非常满意)。下一版本的 C# 的语法历经数年时间的发展,尝试了许多新的语言功能,才最终到达近乎于 2004 年冬提议的原始语法的境界。Linq查询表达式的加入以 C# 即将发布的版本的其他语言功能为基础,并促使许多查询情况更便于具有 SQL 背景的开发人员阅读和理解。
【编辑推荐】