问题标签 [ilookup]

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 投票
5 回答
1441 浏览

c# - 拆分字符串列表以匹配第一个和最后一个字母的最佳方法是什么?

我在 C# 中有一个很长的单词列表,我想在该列表中找到具有相同首尾字母且长度介于 5 到 7 个字符之间的所有单词。例如,列表可能有:

“浪费了被洗了洗了洗了看着手表枯萎了废物智慧洗涤物”

它会回来

长度:5-7,第一个字母:w,最后一个字母:d,“wasted,washed,looking” 长度:5-7,第一个字母:w,最后一个字母:s,“washes, watch, wilts, wastes”

然后我可能会将规范更改为 3-4 个字符的长度,这将返回

长度:3-4,第一个字母:w,最后一个字母:s,“was, wits”

我发现这种拆分方法非常快,使每个项目都独一无二,使用长度并给出了一个很好的开始: Spliting string into words length-based lists c#

有没有办法修改/使用它来考虑第一个和最后一个字母?

编辑

我最初询问“最快”的方式是因为我通常使用大量字符串数组(速度慢且涉及大量代码)来解决此类问题。LINQ 和查找对我来说是新的,但我可以看到我链接到的解决方案中使用的 ILookup 的简单性令人惊叹,而且速度非常快。我实际上并不需要最少的处理器时间。任何避免我为这些信息创建单独数组的方法都很棒。

0 投票
1 回答
138 浏览

.net - 多个键下的 ILookup 存储项目

我有一种情况,我有一组对象,这些对象与数据库中的项目相关。我们创建这些对象的本地缓存以及索引,以允许快速过滤/搜索数据。我遇到的问题是将对象列表转换为查找。

(非常)简化的对象:

一个项目可以属于多个位置,每个位置可以包含多个项目。

我想使用 LocationIDs 作为键创建查找,以便使用其位置 ID 获取属于特定位置的项目列表,并且可以在任意数量的位置(查找键)下找到任何项目。

我尝试了以下

但这不会返回所需的结果。

理想的用法是:

抬头:

然后,您可以轻松地检索给定位置的项目。

任何帮助表示赞赏。

谢谢

0 投票
1 回答
185 浏览

c# - Linq Query to get DataContext Entities based on ILookup

If I have an IEnumerable<int> Values, I can write a Linq to Entities query, like so:

The (Values.Contains(a.QuestionId)) part is what my question concerns.

If Values were implemented instead as: ILookup<string, IEnumerable<int>>Values, how could I rewrite the query to get Answers where Values contains the key(a.Organization) and the IEnumerable values for that key contains a.QuestionId?

0 投票
0 回答
126 浏览

c# - ILookup 和铸造

我得到了以下对象:

GetBaseInformation 方法返回一个按基本类型分组的基本对象列表。有了这个,我想为每个 BaseTypes 设置一个单独的属性列表,我试图这样做:

我究竟做错了什么?做这个的最好方式是什么?

0 投票
0 回答
165 浏览

c#-4.0 - 转换为 ILookup 的 CSV 文件

供应商每晚向我们提供一个 csv 文件。我们需要获取该 csv,提取一些列,然后将它们导入我们的内部应用程序。我们收到的 csv 看起来有点像这样:

StudentId, GradYear, 2014 Thing1, 2014 Thing2, 2015 Thing1, 2015 Thing2

依此类推,似乎永久添加列。当我第一次看到这个 csv 时,我的第一个倾向是将它转换为 2 列:因此:

我的倾向是使用 csvHelper 来读取这个文件,并通过构造一个 ILookup 来转置它。所以我会有一个看起来像这样的查找:

键是 StudentId,而 KeyValuePair 是列标题:单元格值。我几乎可以使用字典来解决这个问题,并使用字典键的计数器,但我无法以 StudentId 作为键来跳转到查找。这是我构建字典的方式:

我可以使用以下代码查看记录。我需要做这个 foreach 的一个版本来进行查找吗?或者,我应该只使用带有一些“如果它是'StudentId'那么让它成为关键吗?

大多数情况下,我想知道我是否在正确的轨道上。当我最终得到任何供应商数据对象时,我将需要遍历它,将学生与我们的学生记录进行比较,并决定更新我们应用程序中的记录。

0 投票
1 回答
168 浏览

c# - 如何接口 IGrouping产生多个值?

我想知道我忽略了哪一点。IGrouping<out TKey, out TElement>由 LINQ 使用GroupBy。此外,相同的逻辑适用于ILookupIIRC。因此,它们可以根据指定的键返回多个值。但是,相反,我希望以下签名可以这样做。

最初,它实现IEnumerable<TElement>IEnumerable向后兼容。这是否完成相同的任务?如果是,如何?我不明白。

ILookup使用的后面的意思是否Join/GroupJoin有多个键与多个值的关联?你能举例说明吗?我看过这个问题,但不明白区别,除了他们的惰性评估与立即评估语义。


不再做复杂的事情,但输出可能对每个人都有帮助。

在此处输入图像描述

0 投票
1 回答
42 浏览

c# - 如何从对象中的键和值匹配的 IGrouping 中获取值

我有一个包含三列的数据库表:CodeType、Code、Name

我将这些值保存在内存中,如果您愿意将这些值分配给 Lookup,那是一个穷人的缓存。

我从数据库中提取值并将它们分配给查找。

我相信这部分到这里是有效的。

我的问题是我无法获取特定 CodeType 和 Code 的名称。例如,我传入“DamageQuadrant”和“P9”,我需要 Name 值。

表视图

这是我目前拥有的,但是 VS 对我咆哮着说没有 CodeType 的定义。

我尝试了各种其他方法,包括在 Linq 代码中使用 && 条件。这看起来很容易,但到目前为止还不是。