在 LINQ 中查找相似记录

2024-04-14

我有以下 LINQ 查询,它将用于查找任何“相似”的货物:

from c in cons
group c by new { c.TripDate.Value, c.DeliveryPostcode, c.DeliveryName } into cg
let min = cg.Min(a => a.DeliverFrom)
let max = cg.Max(a => a.DeliverFrom)
let span = max - min
where span.TotalMinutes <= 59
select cg;

主要的是最小值、最大值和跨度。基本上,“组”中任何发货日期时间与组中任何其他发货日期时间相差 59 分钟以内的发货都将在组中退回。

上面的代码最初对我来说看起来不错,但经过​​进一步检查,似乎组中是否有超过 2 条记录 - 2 条的 DeliverFrom 日期彼此相差 59 分钟,还有一条的 DeliverFrom 日期not在任何 59 分钟之内,那么查询将不会返回该组,因为它将选择最小值和最大值,并发现差异超过 59 分钟。我想要发生的是看到该组中有 2 个托运货物,其 DeliverFrom 日期足够接近,然后只需选择一个包含这两个托运货物的组。

我该怎么做呢?

编辑:哦,其中添加了另一个条款。有一个名为“Weight”的字段和一个名为“Spaces”的字段,每组最多可以有 26 个 Weight 和 26 个 Spaces


如果我没记错的话,你正在寻找的是一个称为簇识别 http://en.wikipedia.org/wiki/Cluster_analysis,如果是这样的话,这就是一个比您想象的要复杂得多的问题。

作为思维练习,想象一下如果您在 1:00、1:30 和 2:00 有 3 个条目。您想如何对这些进行分组?前两个或后两个可以作为一组工作(相隔不到 59 分钟),但所有 3 个都不能。

如果您只想将项目链接到一个组中,只要这些项目与组中任何其他项目的时间间隔在 59 分钟内,则需要继续迭代,直到停止查找新项目以添加到任何集群。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 LINQ 中查找相似记录 的相关文章

随机推荐

  • SwiftUI - 如何在 macOS 上将 onCommand 与 NSMenuItem 结合使用

    我正在尝试找到在 macOS 上将 NSMenuItem 与 SwiftUI onCommand 连接的最佳解决方案 目前我正在做以下事情 在 AppDelegate 中 我创建了一个虚拟函数 以便能够列出第一响应者收到的操作列表的函数 I
  • IntelliJ 工件 JAR 文件:无法找到或加载主类

    我在 IntelliJ 中创建了一个 JAR 工件 可以选择将 JAR 文件提取到目标 JAR 看起来像这样 我正确填写了清单信息 我使用 ZIP 检查了 JAR 文件的内容 它包含 jar 文件 正确填充的 MANIFEST MF 和我的
  • 隐藏文件输入在提交时不保留值

    我有一个带有假按钮的隐藏文件输入和用于浏览器显示一致性的输入 我目前也可以看到原始输入 并且发现使用它上传文件一切运行正常 然而 使用 dummyfile 中的按钮通过 javascript 触发点击 该值将按预期加载 并且在 UI 中也是
  • 如何在 Linux 上动态插入 Python 中的 C 函数(无需 LD_PRELOAD)?

    我如何在运行时 不LD PRELOAD 拦截 挂钩 C 函数 例如fopen 在 Linux 上 就像 Windows 上的 Detours 一样 我想从 Python 执行此操作 因此 我假设该程序已经在运行 CPython VM 并重新
  • 文件上传 API:多部分/表单数据与正文中的原始内容?

    我注意到 至少 有两种方法可以通过 API 将文件上传到 HTTP 服务器 您可以使用multipart form data 这是浏览器本机对文件上传 HTML 输入所做的操作 但您也可以POST请求正文中的文件内容 可能具有正确的 Con
  • 无效的 int 输入陷入无限循环[重复]

    这个问题在这里已经有答案了 do cout lt lt Enter the numerator and denominator of the first fraction cin gt gt a gt gt b cout lt lt end
  • 通过另一个表对 hasMany 进行 Sequelize

    好的 我有以下三个models Module var Module sequelize define module id DataTypes INTEGER name DataTypes STRING description DataTyp
  • Linux 核心转储太大!

    最近 我注意到应用程序生成的核心转储的大小有所增加 最初 它们的大小约为 5MB 包含大约 5 个堆栈帧 现在我的核心转储超过 2GB 其中包含的信息与较小的转储没有什么不同 有什么方法可以控制生成的核心转储的大小吗 它们不应该至少小于应用
  • 使用 Neo4J 和 Spring Data 按 ID 创建关系

    我定义了一个简单的节点对象 如下所示 Node product public class Product Id private String sku Relationship type SOLD BY private Set
  • 如何更改应用商店中的销售国家/地区[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 您好 我的应用程序出现在美国商店 但它主要是澳大利亚应用程序 如何让它出现在澳大利亚应用商店而不是美国应用商店中 但是我仍然可以在澳大利亚应用商店中搜
  • 通过 feature_columns 使用 Dataset API 将自由文本特征输入 Tensorflow Canned Estimators

    我正在尝试建立一个模型reddit score f subreddit comment 主要是作为一个示例 我可以在此基础上构建一个工作项目 我的代码是here https github com andrewm4894 my google
  • iOS:UIButton根据文本长度调整大小

    In interface builder holding Command will resize a button to fit its text I was wondering if this was possible to do pro
  • 如何在 ColdFusion 中通过多组验证尝试来实现 OWASP ESAPI 验证器?

    我一直在研究 ColdFusion 9 中包含的 OWASP ESAPI 实用程序 ColdFusion 的内置企业安全 API http www petefreitag com item 788 cfm The encoder实用程序非常
  • PHP 致命错误

    当 PHP 出现致命错误时 有没有办法让代码继续 而不是退出 例如 我遇到超时致命错误 并且我希望每当它发生时就跳过此任务并继续执行其他任务 在这种情况下 脚本退出 有一种使用输出缓冲的 hack 可以让您记录某些致命错误 但是在发生致命错
  • 在WP7中调用普通的Web服务

    我有普通的 NET Web 服务 不是 WCF 服务 我已使用服务参考将此服务添加到我的 WP7 项目中 因为我们没有 通常我们会使用 添加服务引用 选项添加 WCF 服务 但这里我使用 添加服务引用 选项添加普通的 Web 服务 例如我有
  • python 3.5 中的 json.loads 和 Redis

    我使用 json dumps 创建了一个 JSON 对象 并在 Redis 列表中将其 RPUSH ed 当使用 LRANGE redis lrange 返回 JSON 时 我收到一个二进制字符串 b si 00 ff 所以 json lo
  • 如何将 ISO 8601 格式的日期值转换为 JavaScript 中的日期对象?

    我一直在尝试将日期值转换为更易读的格式 为此 我尝试使用 JavaScript 解析日期Date parse 方法 然而 这不适用于输入 例如 2007 09 21T14 15 34 058 07 00 我有 最终目标是输出一个日期字符串
  • Eclipse IDE Java 构建路径已更改。我选择哪个?

    我正在尝试遵循一些有关 Selenium 的教程 但此时遇到了困难 右键单击 项目 并选择属性 在 属性 对话框中 单击 Java 构建路径 单击库选项卡 然后 单击 添加外部 JAR 添加外部 JARS 按钮呈灰色且禁用 该对话框显示模块
  • pyside-rcc“dyld:库未加载:...”

    我是一个 python 和 Qt 新手 我在运行 pyside rcc 和 Pyrcc4 时遇到一些问题 问题不在于可执行文件的链接 而在于库问题 我不是 Unix 向导 可能也没有帮助 当我跑步时 pyside rcc我收到以下错误 dy
  • 在 LINQ 中查找相似记录

    我有以下 LINQ 查询 它将用于查找任何 相似 的货物 from c in cons group c by new c TripDate Value c DeliveryPostcode c DeliveryName into cg le