问题标签 [linq-to-objects]
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.
linq - LINQ to Objects:可以使用多个 LIKE 条件(OR 或 AND)进行查询?
我们有一个表单,允许用户通过在文本框中输入来过滤列表。我们需要根据两个字段过滤列表。FundName 和 CompanyName。当表单加载时,我将初始 LINQ to SQL 结果放入一个列表中,这样对于每个后续操作(过滤器),数据库都不会被命中。这显着加快了处理速度(从大约 400 毫秒到每个过滤器操作不到 6 毫秒,例如键入一个字符)并减少了 DB 喋喋不休。
问题是当我们决定对两个字段进行过滤条件搜索时,LINQ to Object 查询不起作用。我可以有一个具有多个条件的查询,而不是多个 LIKE(或 .Contains 或 .Endswith 等评估为 SQL LIKE 语句的方法)。该查询确实对 LINQtoSQL 起作用,但对对象不起作用。这是一些示例代码:
例外是“对象引用未设置为对象的实例”。- 堆栈跟踪是:
任何和所有的帮助和建议将不胜感激。
asp.net - 使用 Linq 查询从 DropDownList 中选择 ListItem
我试图使用 Linq 查询在下拉列表控件中查找和设置所选值。
即使文档说 DropDownList.Items 集合实现了 IEnumerable 我在 Where 子句中收到一个错误,即 Option Strict ON 不允许后期绑定!
linq - 如何在 Linq 中合并集合的集合
我希望能够融合IEnumerable<IEnumerable<T>>
到IEnumerable<T>
(即将所有单独的集合合并为一个)。Union
运算符仅适用于两个集合。任何的想法?
linq - 数据表查询
我是 LINQ 的新手。我正在尝试查找第二个数据表中不存在的行。
report_list 和 benchmark 两种类型都是:DataTable。使用 OleDbCommand、OleDbDataAdapter 填充这两个数据表。我收到一个错误“指定的演员表无效。” 在 foreach ...循环中。我会很感激你的帮助。
linq - 是否可以在不同的 LINQ 提供程序之上进行 LINQ 查询?
我目前正在考虑我的数据对象的存储库模式,其中IQueryable<>
可以将多个实例注册为数据源,但让它运行似乎并不容易。
使用 LINQ to 实体和 LINQ To Objects 运行简单的 LINQ 查询不起作用。你认为这通常是可能的吗?也许唯一的解决方案是编写一个指定的提供者?
在我的存储库中,我调用.Union<>()
了所有 IQueryable 实例,然后最后使用 LINQ 对生成的单个IQueryable
. 结果是一个IQueryable
被完全忽略了。
c# - 优化字符串连接的聚合
更新- 对于那些有幽默感的人,您可以假设 Aggregate 仍然会产生正常结果,无论传递给它的函数是什么,包括在被优化的情况下。
我编写了这个程序来构建一长串从 0 到 19999 的整数,用逗号分隔。
当我运行它时,它说:
超过五秒,太可怕了。当然这是因为每次循环都会复制整个字符串。
但是,如果做出评论中指出的一个非常小的改变呢?
现在当我运行它时,它说:
速度提高 100 倍以上。
问题
MakeAggregateGoFaster 命名空间中有什么?
更新 2: 在这里写下我的答案。
vb.net - 使用 linq 将 IDictionary(Of TK, TV) 过滤到 IDictionary(Of TK, TV)
一些非常基本的东西似乎在逃避我。
我希望得到一个 IDictiorany(Of String, String) 回来,只有具有非空值的元素。我认为这会做到这一点:
但这最终是错误的类型。添加:
也无济于事。有小费吗?
c# - LINQ GroupJoin innerKeySelector/outerKeySelector 问题与两个数据表
给定一个 DataSet,我将把 DataTables[1-n] 加入 DataTable[0]。我创建了一个带有签名的方法,如下所示:
笔记:
- 返回类型是 DataTable,它是生成的左连接。
- DataSet ds 是用于连接的 DataTables 的集合。
- JoinKey 是一个具有两个公共属性的对象:Type DataType 和 string Name。此集合包含要在联接中使用的每个字段的类型/名称。
以下是两个片段(片段 1和片段 2)片段 1 正常工作。唯一的问题是 GroupJoin 的第二个和第三个参数是硬编码的:
以上是不可取的。相反,我想使用我的“JoinKey”对象来动态设置我想要加入的字段(即 ZipCode 和 StoreID)。我在Snippet 2中尝试过这个。但是,首先,请参阅片段 1。
片段 1(工作,硬编码):
注意:变量“flatRow”存储左连接数据的对象数组;稍后在方法中将其添加到 DataRowCollection(未显示)。
片段 2(不工作;但是没有抛出错误):
这是上面使用的KeySelector函数(请参阅内联注释):
片段 2仅返回来自 DataTable[0] 的数据。DataTable[1-n] 中的所有数据(如果存在)都没有连接到变量“flatRow”中。不过,有趣的是,我确实得到了数组中正确数量的元素。我知道这与 KeySelector 方法有关,但是(显然)我不知道问题是什么。
如果有人需要更多信息,请告诉我。非常感谢您的帮助...
谢谢,
泰勒
linq - 如何创建动态 LINQ 连接扩展方法
有一个动态LINQ扩展方法库作为Visual Studio 2008的示例发布。我想用 join 方法扩展它。下面的代码在运行时失败并出现参数未匹配异常。哪里有问题?
c# - 使用 LINQ 过滤列表
我有一个从外部应用程序返回的人员列表,我正在本地应用程序中创建一个排除列表,以便我可以选择手动从列表中删除人员。
我有一个我创建的复合键,它对两者都是通用的,我想找到一种使用我的列表从我的列表中删除人员的有效方法
例如
我认为 LINQ 是这样做的理想方式,但是在尝试了连接、扩展方法、使用产量等之后,我仍然遇到了麻烦。
如果这是 SQL,我会使用not in (?,?,?)
查询。