如何在字典列表上动态构建分组依据

2023-12-11

我正在尝试对 IEnumerable 执行 groupby 。问题是我在编译时不知道我想要对哪些字段进行分组。我已经发现另一个帖子在堆栈上解释了当类已知并且具有属性时如何执行此操作,但就我而言,我正在处理字典,并且键也仅在运行时已知。

我的代码类似于这样(我知道这不能编译......):

private object GetValuesGroupedBy(List<string> groupbyNames, List<string> summableNames)
{
     // get the list of items in the grid
     var listOfDicos = grid.AllItems;

     return listOfDicos
                .GroupBy(x => new { x[groupbyNames[0]], 
                                    x[groupbyNames[1]], 
                                    x[groupbyNames[2]] })
                .Select(group => new { group.Key, 
                                       group.Sum(x => x[summableNames[0]]), 
                                       group.Sum(x => x[summableNames[1]]) });
}  

有任何想法吗?我已经开始研究动态 LINQ 但陷入困境(因为我没有使用属性,而是使用键/值集合)...

谢谢大家!!

Sean


所以我能够让 groupby 工作...( select 语句是另一个问题)。感谢 c0d1ng 让我走上了正确的道路。语法并不是那么简单,因为我使用的是索引器而不是属性......

下面是我的代码:

    private void GetValuesGroupedBy(List<Dictionary<string, object>> list, List<string> groupbyNames, List<string> summableNames)
    {
        // build the groupby string
        StringBuilder groupBySB = new StringBuilder();
        groupBySB.Append("new ( ");
        bool useComma = false;
        foreach (var name in groupbyNames)
        {
            if (useComma)
                groupBySB.Append(", ");
            else
                useComma = true;

            groupBySB.Append("it[\"");
            groupBySB.Append(name);
            groupBySB.Append("\"]");
            groupBySB.Append(" as ");
            groupBySB.Append(name);
        }
        groupBySB.Append(" )");

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

如何在字典列表上动态构建分组依据 的相关文章

  • “构建”构建我的项目,“构建解决方案”则不构建

    我刚刚开始使用VS2010 我有一个较大的解决方案 已从 VS2008 成功迁移 我已将一个名为 Test 的控制台应用程序项目添加到解决方案中 选择构建 gt 构建解决方案不编译新项目 选择构建 gt 构建测试确实构建了项目 在失败的情况
  • WCF RIA 服务 - 加载多个实体

    我正在寻找一种模式来解决以下问题 我认为这很常见 我正在使用 WCF RIA 服务在初始加载时将多个实体返回给客户端 我希望两个实体异步加载 以免锁定 UI 并且我想利用 RIA 服务来执行此操作 我的解决方案如下 似乎有效 这种方法会遇到
  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • 用于检查类是否具有运算符/成员的 C++ 类型特征[重复]

    这个问题在这里已经有答案了 可能的重复 是否可以编写一个 C 模板来检查函数是否存在 https stackoverflow com questions 257288 is it possible to write a c template
  • 查找c中结构元素的偏移量

    struct a struct b int i float j x struct c int k float l y z 谁能解释一下如何找到偏移量int k这样我们就可以找到地址int i Use offsetof 找到从开始处的偏移量z
  • 类模板参数推导 - clang 和 gcc 不同

    下面的代码使用 gcc 编译 但不使用 clang 编译 https godbolt org z ttqGuL template
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • 在 ASP.NET 5 中使用 DI 调用构造函数时解决依赖关系

    Web 上似乎充斥着如何在 ASP NET 5 中使用 DI 的示例 但没有一个示例显示如何调用构造函数并解决依赖关系 以下只是众多案例之一 http social technet microsoft com wiki contents a
  • 使用 WebClient 时出现 System.Net.WebException:无法创建 SSL/TLS 安全通道

    当我执行以下代码时 System Net ServicePointManager ServerCertificateValidationCallback sender certificate chain errors gt return t
  • 重载<<的返回值

    include
  • WCF 中 SOAP 消息的数字签名

    我在 4 0 中有一个 WCF 服务 我需要向 SOAP 响应添加数字签名 我不太确定实际上应该如何完成 我相信响应应该类似于下面的链接中显示的内容 https spaces internet2 edu display ISWG Signe
  • 显示UnityWebRequest的进度

    我正在尝试使用下载 assetbundle统一网络请求 https docs unity3d com ScriptReference Networking UnityWebRequest GetAssetBundle html并显示进度 根
  • 如何设计以 char* 指针作为类成员变量的类?

    首先我想介绍一下我的情况 我写了一些类 将 char 指针作为私有类成员 而且这个项目有 GUI 所以当单击按钮时 某些函数可能会执行多次 这些类是设计的单班在项目中 但是其中的某些函数可以执行多次 然后我发现我的项目存在内存泄漏 所以我想
  • 如何在整个 ASP .NET MVC 应用程序中需要授权

    我创建的应用程序中 除了启用登录的操作之外的每个操作都应该超出未登录用户的限制 我应该添加 Authorize 每个班级标题前的注释 像这儿 namespace WebApplication2 Controllers Authorize p
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定
  • 对来自流读取器的过滤数据执行小计

    编辑问题未得到解答 我有一个基于 1 个标准的过滤输出 前 3 个数字是 110 210 或 310 给出 3 个不同的组 从流阅读器控制台 问题已编辑 因为第一个答案是我给出的具体示例的字面解决方案 我使用的实际字符串长度为 450 个

随机推荐

  • 如何通过函数返回 cy.request 的响应

    我正在尝试使用以下函数传递 API 请求的结果 Add someName cy request method POST url someURL body name someName then function response return
  • 使用 RODBC 将 SQL 存储过程结果转换为 data.frame 格式

    我正在使用 RODBC 包在 SQL 服务器中查询结果 我编写了一个特定的存储过程 当在我的 SQL Server 管理中执行时 studio 例如 返回一个表 但是 当我通过 R 运行查询时 它返回character 0 Execute
  • 如何从响应正文获取数据[重复]

    这个问题在这里已经有答案了 我现在正在使用 Java 中的 Youtube API 并设法将一些数据存储为CommentThreadListResponse 这是其节点的示例 但列表包含大约 100 个节点 snippet topLevel
  • 更改 WPF DatePicker 的字符串格式

    我需要更改 WPF 工具包 DatePicker 中 DatePickerTextBox 的字符串格式 以使用连字符而不是斜杠作为分隔符 有没有办法覆盖这个默认区域性或显示字符串格式 01 01 2010 我在这段代码的帮助下解决了这个问题
  • 如何使用Power Point VBA代码从文本文件中逐行读取行?

    此代码将从文本文件中读取一行 set file CreateObject Scripting FileSystemObject OpenTextFile c number txt 1 text file ReadLine MsgBox te
  • 将数据流式传输到基于 Web 的(角度)前端的现代方法

    tldr 我想建立一个带有实时显示数据的节点后端的角度应用程序 数据流的源是kafka流 其数据存储在postgres数据库中 我对某些主题很陌生 但有信心可以启动并运行它 但很可能不是以 最佳实践 方式 我无法弄清楚什么是现代且有效的方法
  • 常数的大O表示法

    我计算出我的运行时复杂度是4 这个的大O表示法是什么 例如 如果我的运行时复杂度是4 n那么它的大O O n 让我们宽松地看一下我们所说的定义f n is in O g n f n is in O g n 意思是c g n 是上界f n 于
  • 我如何要求对泛型类型的引用可以与泛型类型进行比较以确保相等?

    我正在尝试实现一种依赖于模幂的算法 我找不到任何适用于本机类型的模幂结构 例如u64 仅适用于 bigint 所以我想我应该编写一个标准重复平方法模幂 这是我想出的 fn powm base u64 exponent u64 modulus
  • FQL 中 CONTAINS() 的文档?

    最近有several 问题 posted在 Facebook SO 上使用CONTAINS in the WHERE条款 它的工作原理似乎类似于 Graph API 搜索功能 并且充当索引字段 对于 FQL 开发人员来说 这一切都是伟大的事
  • 如何在静态库中包含静态库?

    我在两个不同的文件夹中有 2 个静态库 libA and libB libB必须包括libA 我的主要 CMakeLists txt 是 add subdirectory libA add subdirectory libB 我的第一个错误
  • UITableViewCell 分组样式中的方形而不是圆角

    我希望分组的表格视图单元格具有方角 而不是默认的圆角 而且我不仅仅想使用图像来实现这种效果 是否可以 最简单的是 在你的tableView cellForRowAtIndexPath use cell backgroundView UIVi
  • PHP 和 FFMPEG - 执行智能视频转换

    我有一项异常困难的任务要执行 我以为这很容易 但我的所有努力都没有结果 我正在将上传到 php 脚本的视频从各种格式 avi mpg wmv mov 等 转换为单一 flv 格式 转换效果很好 但我遇到的问题是视频的分辨率 这是我当前正在运
  • 覆盖 WPF 模板时,是否必须单独覆盖每个主题的模板?

    我需要更改 WPF ComboBox 模板的一小部分 如果我复制 Luna 主题的现有模板并进行更改 那么最初一切都会正常工作 但如果用户有不同的主题 我的ComboBox保留了它的自定义主题 这显然是基于 Luna 所以看起来不合适 有没
  • 如何使用谓词从核心数据中获取偶数和奇数值

    我想从我的核心数据实体中获取偶数和奇数值 请查看下面的代码并进行更正 因为它会使应用程序崩溃 NSPredicate predicate if leadFilter rank isEqualToString Even predicate N
  • 在 Delphi 中为 MySQL 创建 UDF

    如何使用 Delphi 创建 MySQL 的 UDF 有人有代码模板吗 我希望将代码模板集成到 Delphi 版本 2007 及更高版本 中 因此我需要这些模板在有或没有 Unicode 支持的情况下都可以使用 首先 谷歌透露 文档 论坛主
  • 如何在 JavaScript 中将哈希值转换为单个对象?

    我有一个以下格式的对象数组 var log billkey Name billvalue ABC billkey Department billvalue Computer 我想将其转换为单个对象 例如 var log Name ABC D
  • Rails 3 提交标签 + html_safe

    这行代码有什么问题吗 这实际上产生 显然我的 html safe 调用没有做任何事情 背景 我在用着推特引导程序也字体真棒我本质上是想实现一个带有图标的提交按钮 为了扩展卢卡斯的答案 我需要一个按钮标签而不是输入 这段代码产生了我想要的效果
  • Maven 无法解决本地依赖关系

    我有一个 Maven 项目 其中包含一个带有外部 jar 文件的项目内存储库 我使用 install 命令将 jar 文件安装到项目内存储库中 当我检查存储库时 jar 文件已安装 我还在pom文件中添加了依赖配置 但是当我运行 mvn 编
  • 用 Dotrine 查询语言写“NOT IN”

    我有两张桌子company id and company has wtax company id 我需要获取所有不在其中的公司company has wtax桌子 原始 SQL 应该是这样的 SELECT id FROM company L
  • 如何在字典列表上动态构建分组依据

    我正在尝试对 IEnumerable 执行 groupby 问题是我在编译时不知道我想要对哪些字段进行分组 我已经发现另一个帖子在堆栈上解释了当类已知并且具有属性时如何执行此操作 但就我而言 我正在处理字典 并且键也仅在运行时已知 我的代码