问题标签 [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.
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 的简单性令人惊叹,而且速度非常快。我实际上并不需要最少的处理器时间。任何避免我为这些信息创建单独数组的方法都很棒。
.net - 多个键下的 ILookup 存储项目
我有一种情况,我有一组对象,这些对象与数据库中的项目相关。我们创建这些对象的本地缓存以及索引,以允许快速过滤/搜索数据。我遇到的问题是将对象列表转换为查找。
(非常)简化的对象:
一个项目可以属于多个位置,每个位置可以包含多个项目。
我想使用 LocationIDs 作为键创建查找,以便使用其位置 ID 获取属于特定位置的项目列表,并且可以在任意数量的位置(查找键)下找到任何项目。
我尝试了以下
但这不会返回所需的结果。
理想的用法是:
抬头:
然后,您可以轻松地检索给定位置的项目。
任何帮助表示赞赏。
谢谢
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
?
c# - ILookup 和铸造
我得到了以下对象:
GetBaseInformation 方法返回一个按基本类型分组的基本对象列表。有了这个,我想为每个 BaseTypes 设置一个单独的属性列表,我试图这样做:
我究竟做错了什么?做这个的最好方式是什么?
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'那么让它成为关键吗?
大多数情况下,我想知道我是否在正确的轨道上。当我最终得到任何供应商数据对象时,我将需要遍历它,将学生与我们的学生记录进行比较,并决定更新我们应用程序中的记录。
c# - 如何接口 IGrouping产生多个值?
我想知道我忽略了哪一点。IGrouping<out TKey, out TElement>
由 LINQ 使用GroupBy
。此外,相同的逻辑适用于ILookup
IIRC。因此,它们可以根据指定的键返回多个值。但是,相反,我希望以下签名可以这样做。
最初,它实现IEnumerable<TElement>
和IEnumerable
向后兼容。这是否完成相同的任务?如果是,如何?我不明白。
ILookup
使用的后面的意思是否Join/GroupJoin
有多个键与多个值的关联?你能举例说明吗?我看过这个问题,但不明白区别,除了他们的惰性评估与立即评估语义。
不再做复杂的事情,但输出可能对每个人都有帮助。