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

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(使用前将#替换为@)

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

  • 创建 DirectoryEntry 实例以供测试使用

    我正在尝试创建 DirectoryEntry 的实例 以便可以使用它来测试将传递 DirectoryEntry 的一些代码 然而 尽管进行了很多尝试 我还是找不到实例化 DE 并初始化它的 PropertyCollection 的方法 我有
  • 属性对象什么时候创建?

    由于属性实际上只是附加到程序集的元数据 这是否意味着属性对象仅根据请求创建 例如当您调用 GetCustomAttributes 时 或者它们是在创建对象时创建的 或者 前两个的组合 在由于 CLR 的属性扫描而创建对象时创建 从 CLR
  • Func 方法参数的首选命名约定是什么?

    我承认这个问题是主观的 但我对社区的观点感兴趣 我有一个缓存类 它采用类型的缓存加载器函数Func
  • 如何在C++中实现模板类协变?

    是否可以以这样一种方式实现类模板 如果模板参数相关 一个对象可以转换为另一个对象 这是一个展示这个想法的例子 当然它不会编译 struct Base struct Derived Base template
  • 使用 Microsoft Graph API 订阅 Outlook 推送通知时出现 400 错误请求错误

    我正在尝试使用 Microsoft Graph API 创建订阅以通过推送通知获取 Outlook 电子邮件 mentions 我在用本文档 https learn microsoft com en us graph api subscri
  • C# 中值类型和引用类型有什么区别? [复制]

    这个问题在这里已经有答案了 我知道一些差异 值类型存储在堆栈上 而引用类型存储在托管堆上 值类型变量直接包含它们的值 而引用变量仅包含对托管堆上创建的对象位置的引用 我错过了任何其他区别吗 如果是的话 它们是什么 请阅读 堆栈是一个实现细节
  • 将字符串从非托管代码传递到托管

    我在将字符串从非托管代码传递到托管代码时遇到问题 在我的非托管类中 非托管类 cpp 我有一个来自托管代码的函数指针 TESTCALLBACK FUNCTION testCbFunc TESTCALLBACK FUNCTION 接受一个字符
  • 使用 C# 在 WinRT 中获取可用磁盘空间

    DllImport kernel32 dll SetLastError true static extern bool GetDiskFreeSpaceEx string lpDirectoryName out ulong lpFreeBy
  • .Net Core / 控制台应用程序 / 配置 / XML

    我第一次尝试使用新的 ConfigurationBuilder 和选项模式进入 Net Core 库 这里有很多很好的例子 https docs asp net en latest fundamentals configuration ht
  • 在 ASP.Net Core 2.0 中导出到 Excel

    我曾经使用下面的代码在 ASP NET MVC 中将数据导出到 Excel Response AppendHeader content disposition attachment filename ExportedHtml xls Res
  • 是否有比 lex/flex 更好(更现代)的工具来生成 C++ 分词器?

    我最近将源文件解析添加到现有工具中 该工具从复杂的命令行参数生成输出文件 命令行参数变得如此复杂 以至于我们开始允许它们作为一个文件提供 该文件被解析为一个非常大的命令行 但语法仍然很尴尬 因此我添加了使用更合理的语法解析源文件的功能 我使
  • .NET 选项将视频文件流式传输为网络摄像头图像

    我有兴趣开发一个应用程序 它允许我从 xml 构建视频列表 包含视频标题 持续时间等 并将该列表作为我的网络摄像头流播放 这意味着 如果我要访问 ustream tv 或在实时通讯软件上激活我的网络摄像头 我的视频播放列表将注册为我的活动网
  • 网络参考共享类

    我用 Java 编写了一些 SOAP Web 服务 在 JBoss 5 1 上运行 其中两个共享一个类 AddressTO Web 服务在我的 ApplycationServer 上正确部署 一切都很顺利 直到我尝试在我的 C 客户端中使用
  • 检查 url 是否指向文件或页面

    我们需要以下内容 如果文件确实是文件 则从 URL 下载该文件 否则 如果它是一个页面 则什么也不做 举个简单的例子 我有以下命令来下载文件 My Computer Network DownloadFile http www wired c
  • 什么是 C 语言的高效工作流程? - Makefile + bash脚本

    我正在开发我的第一个项目 该项目将跨越多个 C 文件 对于我的前几个练习程序 我只是在中编写了我的代码main c并使用编译gcc main c o main 当我学习时 这对我有用 现在 我正在独自开展一个更大的项目 我想继续自己进行编译
  • 将日期参数传递给对 MVC 操作的 ajax 调用的安全方法

    我有一个 MVC 操作 它的参数之一是DateTime如果我通过 17 07 2012 它会抛出一个异常 指出参数为空但不能有空值 但如果我通过01 07 2012它被解析为Jan 07 2012 我将日期传递给 ajax 调用DD MM
  • char指针或char变量的默认值是什么[重复]

    这个问题在这里已经有答案了 下面是我尝试打印 char 变量和指针的默认值 值的代码 但无法在控制台上看到它 它是否有默认值或只是无法读取 ASCII 范围 include
  • 在Linux中使用C/C++获取机器序列号和CPU ID

    在Linux系统中如何获取机器序列号和CPU ID 示例代码受到高度赞赏 Here http lxr linux no linux v2 6 39 arch x86 include asm processor h L173Linux 内核似
  • 如何使用 ReactiveList 以便在添加新项目时更新 UI

    我正在创建一个带有列表的 Xamarin Forms 应用程序 itemSource 是一个reactiveList 但是 向列表添加新项目不会更新 UI 这样做的正确方法是什么 列表定义 listView new ListView var
  • 将 viewbag 从操作控制器传递到部分视图

    我有一个带有部分视图的 mvc 视图 控制器中有一个 ActionResult 方法 它将返回 PartialView 因此 我需要将 ViewBag 数据从 ActionResult 方法传递到 Partial View 这是我的控制器

随机推荐

  • 如何通过函数返回 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 问题是我在编译时不知道我想要对哪些字段进行分组 我已经发现另一个帖子在堆栈上解释了当类已知并且具有属性时如何执行此操作 但就我而言 我正在处理字典 并且键也仅在运行时已知 我的代码