Tag: linq query syntax

LINQ – 查询语法与方法链&lambda

有没有人坚持任何规则(或者你是否坚持你的雇主的任何规则?)当select使用LINQ查询语法或一个LINQ扩展方法内的Lambdaexpression式? 这适用于任何实体,SQL,对象,任何东西。 在我们的工作场所,我的老板根本就不喜欢lambda,他会使用查询语法来处理任何事情,在某些情况下,我发现它的可读性较差。 var names = collection.Select(item => item.Name); var names = from item in collection select item.Name; 也许当添加一个条件,我觉得Lambda有点混乱,在哪里 var names = collection.Where(item => item.Name == "Fred") .Select(item => item.Name); var names = from item in collection where item.Name == "Fred" select item.Name; 出于兴趣:编译器如何处理这个? 有谁知道上面的LINQ查询将如何编译成lambda? 是否会为每个元素调用Name属性? 我们可以这样做,并可能提高性能? 这是否意味着lambda在性能方面稍微有点可控性? var names = collection.Select(item => item.Name) .Where(name […]

扩展方法语法与查询语法

我试图得到一个句柄,如果有一个好的时间来使用lambdaexpression式的标准linq关键字或linq扩展方法。 他们似乎做同样的事情,只是有不同的写法。 纯粹是一种风格问题吗? var query = from p in Products where p.Name.Contains("foo") orderby c.Name select p; // or with extension methods: var query = Products .Where(p => p.Name.Contains("foo")) .OrderBy(p => p.Name); 他们非常相似,第二个例子更简洁一些,但是如果你不知道=>正在做什么,那么expression的可能性就会小一些。 除了写简洁的代码,使用扩展方法,而不是LINQ语法有其他的优点吗?