问题标签 [morelinq]

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 投票
2 回答
163 浏览

c# - 如何通过某些规则延迟合并一些可枚举

例如我必须序列:

我需要得到下一个结果:

我写了两个函数,但他们并不懒惰!

我怎样才能通过惰性评估来做到这一点?

0 投票
1 回答
190 浏览

c# - Linq + MoreLinq 如何将一个结果道具聚合到列表中?

查询有问题,请看一下。我的目标是:

  • 我需要一个接Products一个Image
  • ProductsValues一些关于产品的附加信息,如规格等。
  • Image并且Values可以是null
  • ProductsImage和返回所有Values
  • 因为Values我只需要Ids这样就可以了List<int> of Values
  • ProductValues并且ImageObjects是关系的连接表->Products可以有很多ProductValuesProducts可以有很多ImageObjects但可以有一个Image
  • DistinctBy来自more linq

问题我不知道如何以Values正确的方式聚合以返回Values每个列表Product

PS我也在使用更多的linq

回答 Values = (from tmp in ljpv select new { ValueId = tmp.ValueId}),

我知道这不是回答的地方,但是有人会对我的代码有任何建议,或者可以更清楚或更快地完成。我一直想知道如何做这个查询很长一段时间,但是当我写信给你时,我感到眼花缭乱:)


回答后@Harald Coppoolse- 代码更快!

0 投票
1 回答
426 浏览

c# - MoreLinq - 如何在不从选择器中获取空值的情况下进行 FullJoin?

MoreLinq 提供了 FullJoin 扩展。但是,我希望 bothSelector 函数(它是 FullJoin 函数的参数)仅在 TResult 不为空时才返回它。

例子:

给定两个完全由数字连接的列表:

清单 1:1,2,3 清单 2:1,2,3,4,5

结果列表 3:空、空、空、4、5

所需:4、5

这可能吗?

谢谢。

0 投票
4 回答
175 浏览

c# - 如何检查 int 类型的索引序列是否连续?

我有一个Column具有Indextype 属性的类int

如果我有一组Column对象,我正在寻找一种方法来测试它们的索引是否连续。连续是指索引彼此相邻,因此如果按值排序,它们与下一个和上一个索引的距离为 1。

可以有任意数量的column对象。

因此,例如:

  • 10,11,12,13 => 真

  • 3,5,7 => 假

  • 1,2,4 => 假

编辑

虽然这些示例是有序索引,但我想要一个采用无序索引集的解决方案。

我确信可能有一种巧妙的 Linq 方法可以解决这个问题,但我看不到它。

用代码表示:

0 投票
1 回答
67 浏览

c# - 从列表中获取不同的对象

编辑:问题不在于不同的方法,而是标题的编码方式。与 StringComparison.InvariantCultureIgnoreCase 比较返回 true。问题关闭。这是我的代码:

在此处输入图像描述

当我用我的输入运行这条线时,我得到了这个。我想根据标题和类型消除重复项。你能告诉我哪里出错了吗?根据我的比较,这两个对象不一样吗?

谢谢

编辑:做了更多的调试。好像名字不一样。

用文本比较器检查。这是相同的。任何想法为什么?我从 Kindle 阅读了 MyClippings。将测试他们是否以不同的方式编码标题。

0 投票
2 回答
111 浏览

entity-framework - LINQ 中带条件的 DistinctBy

我有来自数据库的实体集合,其中包含某些重复项,例如一个带有值的序列和其他带有空值的序列。我想删除空序列。我已经厌倦moreLINQ了,DistinctBy但我的情况仍然不令人满意。

我有一个来自结果集的列表。

我想始终通过跳过具有空值或New状态的重复项来检索以下输出。

0 投票
1 回答
197 浏览

c# - .NET Framework 4.7.2 和 MoreLINQ

我正在尝试使用 VS2019 将大型解决方案更新为 .NET Framework 4.7.2。此解决方案的问题之一是它是一个大型插件类型架构,其中(出于多种原因)我无法使用该解决方案提供的更新的共享库集重新编译插件并将其发布到生产环境。

通常这是可以的,但我们必须非常小心以确保完全向后二进制兼容性。System.Linq当我们最近升级到 .NET 4.7.2 时,我们开始在和之间获得冲突的使用指示符MoreLinq,通常在.ToHashSet()我们常用的扩展上。这个问题在MoreLinq 的 github上有所概述

我认为纠正这个问题的唯一方法是将 MoreLINQs 的使用隔离到我控制的单个 DLL 中,一旦所有插件都引用该 DLL 升级到 4.7.2,则.ToHashSet()在当时的公共位置修复调用。

有谁知道更好/更有效的方法来做到这一点,而无需一次重新发布所有插件?某种我不知道的全球重定向?

0 投票
3 回答
244 浏览

c# - 循环遍历列表分批,同时确保每批项目是唯一的

上下文:我有一个应用程序,允许用户处理当天收到的所有邮寄付款。有时,一个信封可能包含同一个帐户的多张支票(想想两个室友各自支付他们的一部分水电费)。

限制:以 10 个批次处理所有付款,但每批次的帐户 ID 必须是唯一的。

非常简化的支付类:

今天通过邮件收到的假设付款。请注意,最后两个 AccountId 值是可接受的重复项:

我正在使用 MoreLinq 尝试为每批选择不同的帐户,但下面的代码显然不起作用。我觉得我已经很接近了,但一直找不到可行的解决方案。同样,目标是将所有付款分成 N 个批次,而不复制该批次中的 AccountId。重复的 AccountId 必须分布在其他批次中,以便在尝试更新客户的余额时不会导致竞争条件。

为清楚起见,编辑了代码注释。

感谢您抽出宝贵时间查看我的问题。

0 投票
0 回答
25 浏览

c# - 为每周约会的人配对

我正在尝试制作一个程序来创建成对的人,以便每周进行 1 对 1 的聊天。一个人不会与他们之前配对过的人配对(例如,[A,B] 在第 1 周,因此 [A,B] 或 [B,A] 不会在第 2 周再次出现),没有重复(eg. [A,B] 和 [B,A] 一样),一个人一周不能两对(eg. [A, B] 第1周见面,所以[A, C ] 不能在第 1 周见面,因为 A 已经成对了)。

它接收一个字符串数组,并将每个人与数组中的其他人配对。我还有一个数字从 1 到 n 的日期数组。您可以想象元素 1 是第 1 周,元素 2 是第 2 周,依此类推。

例如:

输出的格式无关紧要,它可以是元组数组、列表数组等。它只需要以某种方式传达星期和对。

我试过的

我是 C# 新手,我一直在尝试使用 Linq/MoreLinq 和 HashSets 来解决这个问题,但无济于事。我用这个创建了所有不同的组合:

然后尝试使用 HashSet 过滤掉无效的那些。元组包含 (Item1 = person1, Item2 = person2, Item3 = date)。

是的,这可能是一种非常迂回的方法,但我不确定如何去做,而且这个实现也不起作用。我得到:

在我们到达第 4 周之前,一切似乎都很好。我们应该每周看到 6 对(我的阵列有 12 人)。进行了一些挖掘,它似乎被卡住了,因为剩余的对无效并被移除。

任何帮助表示赞赏。

编辑

我让我的生活变得更加艰难。我只是使用了循环算法

0 投票
1 回答
49 浏览

c# - MoreLinq 的 Scan 和 For 循环返回不同的结果

我需要outputs使用inputs以下公式计算:

我使用for循环和 MoreLinq 的Scan扩展实现了这一点:

但是,我得到不同的输出结果。我错过了什么?

我使用Scan不正确吗?