问题标签 [linq-query-syntax]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
354 浏览

c# - 如何使用 Linq2Sql C# 表达式使用复杂表达式加入

我需要实现这样的查询:在 C# Linq2Sql 语句中可以这样写:

但我想知道如何使用 C# 表达式来做到这一点。我的意思是这样的:

我看到 Join 方法只提供了使用 equal join 的机会f1.Id == f2.Id。但是如何在 C# 表达式中编写更复杂的查询表达式,例如 ? 等表达式在f1.Id < f2.Id哪里?

0 投票
3 回答
658 浏览

c# - 哪个快:查询语法与循环

以下代码提供了两种方法来生成总和小于 100 的整数对,并且它们根据与 (0,0) 的距离以降序排列。

这段代码摘自 Bill Wagner 的《Effective C# 》一书,第 8 条。在整篇文章中,作者更多地关注代码的语法、紧凑性和可读性,而很少关注性能,几乎没有讨论它。

所以我基本上想知道,哪种方法更快?什么通常在性能上更好(通常):查询语法或手动循环?

请详细讨论它们,如果有的话,请提供参考。:-)

0 投票
6 回答
14446 浏览

c# - 将字符串解析为 LINQ 查询

将 LINQ 字符串解析为查询的最佳实践是什么?

或者换句话说,哪种方法最适合转换:

进入

假设source指的是一个IEnumerable<Element>IQueryable<Element>在本地范围内。

0 投票
2 回答
2945 浏览

c# - C# 对象按组排序,使用 linq

我有一个按特定属性分组的对象列表。我需要根据其他属性对这个列表进行排序,但它总是需要保留分组。例如,如果列表类似于:

那么按零件编号升序排序后的结果将是:

它按每个组中的最小 PartNumber 排序(如果按降序排序,则按最大值排序),但必须保持按 ID 分组。我尝试了 .OrderBy() 和 .GroupBy() 的各种组合,但我似乎无法得到我需要的东西。

0 投票
3 回答
993 浏览

vb.net - LINQ to SQL“复杂”选择

我有 Country=>Ligue=>Team(Name, Score)

我需要从一个国家/地区选择所有团队名称分数。

像这样的东西,不起作用)

查询 =来自 myCountry.Ligues 中的ligue,来自 ligue.Teams 中的团队 select name = team.Name, score = team.Score distinct

编辑:

VB.NET 语法更可取。

0 投票
1 回答
682 浏览

linq - Linq:运算符不理解表达式类型谓词的查询语法

我已将规范定义为如下类型的对象Expression<Func<User, bool>>

这对于用扩展方法语法编写的查询非常有效:

但不是使用 Linq 查询语法:

编译器给了我cannot implicitly convert type 'Expression<Func<User, bool>>' to 'bool'.

是什么赋予了?我认为 Linq 查询语法只是一个可爱的 DSL 修饰扩展方法语法。谁能告诉我如何将我可爱的规范与 Linq 查询语法一起使用?

0 投票
1 回答
26313 浏览

c# - LINQ - 查询语法与方法链和 lambda

在选择使用 LINQ 查询语法或 LINQ 扩展方法之一中的 Lambda 表达式时,是否有人遵守任何规则(或者您是否被迫遵守雇主的任何规则?)?这适用于任何实体、SQL、对象、任何东西。

在我们的工作场所,我的老板根本不喜欢 lambda,他会对任何事情使用查询语法,在某些情况下,我发现它的可读性较差。

也许在添加条件时,我发现的 Lambda 有点混乱,其中

只是出于兴趣:编译器如何处理这个?有谁知道上面的 LINQ 查询将如何编译成 lambda?是否会Name为每个元素调用该属性?我们可以这样做并有可能提高性能吗?这是否意味着 lambda 在性能方面更加可控?

当然,当我们开始使用越来越多的表达式时,lambda 会变得混乱,我会开始在这里使用查询语法。

还有一些我发现无法使用查询语法完成的事情。您认为其中一些非常简单(尤其是聚合函数),但是不,您必须在最后添加一种 LINQ 扩展方法,imo 使用 lambda 表达式看起来更整洁。

即使对于一些简单的 lambda 链,ReSharper也建议我将它们转换为 LINQ 查询。

其他人可以添加吗?有没有人有自己的小规则,或者他们的公司是否建议/强制使用一个?

0 投票
3 回答
466 浏览

.net - LINQ查询中多个来自选择器的含义是什么

我已经在 LINQ 查询中多次看到过多个 from 子句,但还没有弄清楚它与 TSQL 语句的对应关系。

那有什么作用?

这会转化为 SQLSELECT * FROM products, departments, something吗?

此外,select在这种情况下,应该始终是SelectMany. 我怎么知道什么时候 aselect实际上是 a SelectMany

0 投票
1 回答
1994 浏览

c# - LINQ - 方法与查询语法差异

我正在使用 DataTable 并注意到 Resharper 建议我可以将循环转换为 LINQ 表达式。我这样做了,它被重写为查询表达式语法(简化):

就个人而言,我更喜欢方法语法,因此将其重写为:

它坏了。

“System.Data.DataRowCollection”不包含“Select”的定义,并且找不到接受“System.Data.DataRowCollection”类型的第一个参数的扩展方法“Select”(您是否缺少 using 指令或程序集引用?)

既然查询表达式被翻译成方法调用,为什么第一个有效而第二个无效?我希望两者都起作用或都不起作用,显然情况并非如此。

0 投票
3 回答
2115 浏览

linq - Linq 嵌套内连接

我想加入以下表格

首先加入 B_Book 和 BI_BookInstance,然后将它们的结果加入 BookCategory。(第一次连接)[B_BID 等于 BI_BID] (第二次嵌套连接)[第一次连接 B_CategoryID 的结果等于 BC_CategoryID]

编辑

SQL 将类似于以下内容: