在 Calvert 和 Kulkarni 的“Essential LINQ”一书中,都使用了术语“LINQ 运算符”和“LINQ 关键字”。这两个术语有什么区别?
问问题
540 次
1 回答
3
运算符是 IEnumerable 接口上的一组扩展方法,提供查询功能,包括:过滤、投影、聚合、排序。它们可以应用于任何枚举和集合。
关键字是添加到语言(语言扩展)本身(C# 或 VB)的一组关键字,用于构造LINQ 表达式,在引擎盖下关键字调用相应的运算符。并非所有运算符都有相应的关键字,只有一些更常用的标准查询运算符具有专用的 C# 和 Visual Basic 语言关键字语法,可以将它们作为查询表达式的一部分进行调用。
因此,两者之间的区别在于它们赋予代码的不同形式(视觉冲击),在引擎盖下调用相同的方法(操作符扩展方法)。
来自 msdn 的示例:
string sentence = "the quick brown fox jumps over the lazy dog";
// Split the string into individual words to create a collection.
string[] words = sentence.Split(' ');
// Using query expression syntax.
var query = from word in words
group word.ToUpper() by word.Length into gr
orderby gr.Key
select new { Length = gr.Key, Words = gr };
// Using method-based query syntax.
var query2 = words.
GroupBy(w => w.Length, w => w.ToUpper()).
Select(g => new { Length = g.Key, Words = g }).
OrderBy(o => o.Length);
于 2012-08-16T17:23:42.973 回答