如果在嵌套集合上使用 SelectMany,则保留父实例

2024-04-01

我有我的模型的集合Person:

class Person
{
    public string FirstName {get; set;}
    public string LastName {get; set;}
    public string Company {get; set;}
    public IEnumerable<string> Tags {get; set;}
}

并通过 LINQ 将这个集合转换为另一个按标签分组的集合。我怎样才能做到这一点?

到目前为止我的方法:

var result = PersonCollection
    .SelectMany(m => m.Tags)
    .GroupBy(b => b);

但这会丢弃有关此人的所有信息。


您可以将 Person 保留为匿名类型:

var result = PersonCollection
    .SelectMany(p => p.Tags.Select(t => new{ Person = p, Tag = t }))
    .GroupBy(x => x.Tag);

现在这些组仍然包含标签作为键和人员:

foreach (var tagPersons in result)
{
    Console.WriteLine($"Tag: {tagPersons.Key}");
    Console.Write($" all persons: {string.Join(",", tagPersons.Select(x => x.Person.LastName))}");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果在嵌套集合上使用 SelectMany,则保留父实例 的相关文章

  • 简单的C问题

    作为我正在进行的项目的一部分 我必须开始学习 C 我已经开始解决其中的 欧拉 问题 并且遇到了麻烦 我必须找到 1000 以下的所有 3 或 5 的倍数之和 有人可以帮助我吗 谢谢 include
  • 从 Dropbox C# 下载文件[重复]

    这个问题在这里已经有答案了 我正在尝试下载 Dropbox 中的 pdf 文件 我需要将其保存到本地计算机中 可以是任何文件夹C Users User Desktop例如 这是我一直在使用的代码 public void DownloadPd
  • 在列表中查找匹配项的最简洁方法

    在列表中查找内容的最佳方式是什么 我知道 LINQ 有一些不错的技巧 但我们也可以获取有关 C 2 0 的建议 让我们对这个常见的代码模式进行最佳重构 目前我使用这样的代码 mObjList is a List
  • ASP.NET 会员电子邮件验证

    尝试基于 C 创建电子邮件验证本文 https web archive org web 20211020153319 https www 4guysfromrolla com articles 062508 1 aspx 我创建了一个 ja
  • 为什么不能使用initializer_list来初始化unique_ptr的向量? [复制]

    这个问题在这里已经有答案了 我想知道为什么initializer list 不能与unique ptr 一起使用 std vector
  • 不能使用函数名称距离

    以下代码可以正常编译 include
  • 有没有办法让我的程序用更少的代码运行?

    我为学校作业编写了以下代码 它编译并打印所有正确的消息 但出于我自己的好奇心 我想知道我的代码是否可以缩短并且仍然有效 我尝试了 signal 而不是 sigaction 但我听说 sigaction 比 signal 更受青睐 此外 此任
  • 如何自定义 ASP.Net Core 模型绑定错误?

    我只想从我的 Web API Asp net Core 2 1 返回标准化的错误响应 但我似乎不知道如何处理模型绑定错误 该项目刚刚从 ASP NET Core Web 应用程序 gt API 模板创建 我有一个简单的操作定义为 Route
  • Visual Studio 2015 C# 找不到参考

    我在使用 Visual Studio 2015 和 C 时遇到了问题 在同一解决方案中添加对其他项目的引用时 Visual Studio 找不到所有类 例如 我创建了一个单元测试项目 我添加了对我创建的通信项目的引用 库中有 10 个类 但
  • MSVC10 /MP 在项目中跨文件夹构建非多核

    我希望有人指出我们所遇到的错误或解决方法 使用 MP 编译项目时 似乎仅同时编译同一文件夹中的文件 我使用进程资源管理器来滑动命令行并确认行为 项目过滤器似乎对同时编译的内容没有影响 项目结构disk Folder project vcxp
  • 为什么 .Net 框架指南建议您不要使用 ref/out 参数?

    显然 他们很 混乱 这是认真的原因吗 你还能想到其他的吗 你见过有多少开发人员并不真正理解 ref out 吗 我在真正需要的地方使用它们 但在其他地方则不然 它们通常仅在您想有效返回两个或多个值时才有用 在这种情况下它至少值得thinki
  • 如何实现可变虚拟成员函数

    所以我有这个功能 virtual void CallRemoteFunction const char pServerGameObjectId const char pFunctionName OVariant arg1 OVariant
  • 在 C++ 中初始化指针

    可以在声明时将指针分配给值吗 像这样的东西 int p 1000 是的 您可以在声明时初始化指向值的指针 但是您不能这样做 int p 1000 是个地址运算符 并且您不能将其应用于常量 尽管如果可以 那会很有趣 尝试使用另一个变量 int
  • 本地主机和 request.Url.Authority

    我的应用程序通过 URL 中的公司标识符分隔用户 company1 app com company2 app com 我正在本地 PC 上进行测试 请求如下 company1 localhost com 但是 我的 request Url
  • DataContractJsonSerializer 包含元素类型子类型的通用列表

    我要使用DataContractJsonSerializer用于 JSON 序列化 反序列化 我在 JSON 数组中有两种对象类型 并希望将它们都反序列化为相应的对象类型 具有以下类定义 DataContract public class
  • 函数中的重复参数检查

    我经常有调用层次结构 因为所有方法都需要相同的参数 如果我不想将它们放在实例级别 类的成员 那么我总是问我在每个方法中检查它们的有效性是否有意义 例如 public void MethodA object o if null o throw
  • Xamarin.Android JmDNS 绑定问题

    我开始研究 Xamarin Android 的 JmDNS 绑定 我设法构建了绑定 但无法从代码中引用它 https github com ytn3rd monodroid bindings tree master JmDNS https
  • 您的 C++ 程序中是否仍然存在内存分配失败问题 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在为公司写一些指导方针 我需要回答一些棘手的问题 这一项是相当困难的 解决方案可以是 根本不跟踪 确保使用 new 分配对象 这会在分配失败
  • 如何在您的网站中连接两个人

    有一款名为 Verbosity 的游戏 这是一款有目的的游戏 位于此链接上www gwap com 在游戏中 他们随机连接两个玩家互相玩 游戏是玩家1应该向他的搭档 玩家2 描述一个单词 而玩家2应该猜测这个单词 我正在尝试建立一个网站来执
  • 使用 Crypto++ 和 .NET 的 CFB 模式下的 TripleDES

    我正在尝试使用 TripleDES 使用 C 应用程序获得相同的结果 该应用程序具有Crypto https www cryptopp com 和 NET应用程序使用三重DESCryptoServiceProvider https msdn

随机推荐

  • 如何在 Google Cloud 上的 Kubernetes 中备份 Postgres 数据库?

    备份运行于其上的 Postgres 数据库的最佳实践是什么谷歌云容器引擎 https cloud google com container engine 我的想法是努力将备份存储在谷歌云存储 https cloud google com s
  • 比较 C 中 char[] 的相等性

    我有两个变量 char charTime TIME char buf SOMETHINGELSE 我想检查这两个是否相等 使用charTime buf不起作用 我应该使用什么 有人可以解释为什么使用 不起作用 这个动作在 C 和 C 中会有
  • fatal: 似乎不是 git 存储库

    当我的 Git 存储库 URL 正确时 为什么会收到此错误 fatal email protected cdn cgi l email protection gittest git does not appear to be a git r
  • 如何管理/删除我的 Azure 逻辑应用连接

    我们正在 Azure 中构建一个逻辑应用程序 它由 Office 365 新邮件项目和服务总线队列项目组成 我们无法解决的是如何管理 删除连接 任何建议将不胜感激 参考MSDN博客 https blogs msdn microsoft co
  • 用jquery查找字符串中最后一个单词的第一个字母(字符串可以有多个单词)

    嘿 有没有办法找到字符串中最后一个单词的第一个字母 这些字符串是 XML 解析器函数的结果 在each 循环内 我获取所有节点并将每个名称放入变量中 如下所示 var person xml find name find text 现在 pe
  • 如果 Woocommerce 上的购物车中有特定商品,请更改购物车商品价格

    我正在使用 WooCommerce 会员资格 并且希望向购买特定产品的首次会员提供免费会员资格 我可以让其中一些单独工作 但很难将它们全部组合在一起 他们必须购买的商品也有促销价 因此我也会检查日期以查看该商品是否在促销窗口中 那部分正在工
  • SVG 在 Android 中保留纵横比

    我在 Android 手机上遇到 SVG 缩放问题 我网站的几个部分是基于通过嵌入的 SVG 的宽度和高度尺寸 img 标签 所有浏览器 除了Android 4 1 2 原生浏览器 非 Chrome 正确 完美地缩放 SVG 不会扭曲纵横比
  • 如何在 FastAPI 中进行多处理

    在提供 FastAPI 请求时 我需要对列表中的每个元素执行一项 CPU 密集型任务 我想在多个 CPU 核心上进行此处理 在 FastAPI 中执行此操作的正确方法是什么 我可以使用标准吗multiprocessing模块 到目前为止我发
  • ROWID (oracle) - 有什么用吗?

    我的理解是 ROWID 是查询返回的结果中每一行的唯一值 为什么我们需要这个ROWID ORACLE中已经有ROWNUM了 有人在 SQL 查询中使用过 ROWID 吗 ROWID 是行的物理位置 因此 它是定位行的最快方法 甚至比主键查找
  • 在构建过程中将静态库链接到共享库?

    我在使用 GCC Linux 构建共享库时遇到问题 目前这个共享库是使用 GCC libtool 选项 shared 创建的 一切都很好 现在必须将两个额外的静态库 a 文件 添加到此共享库中 因为它们提供了共享库所需的一些功能 使用选项
  • 该通道未配置任何具有“发现”角色的对等方

    我正在尝试从 java Fabric SDK 进行事务处理 我能够从节点正确查询数据 但在执行事务时出现以下错误 org hyperledger fabric sdk exception ServiceDiscoveryException
  • 类型定义字符串中的元素数量与第 8 行 /home/a3598479/public_html/Register.php 中的绑定变量数量不匹配

    请帮我 我实际上并不使用 PHP 但我需要在我的登录 注册项目中使用 con mysqli connect name POST name username POST username password POST password state
  • iOS 启动图像不会显示在 iPhone 或模拟器上,但可在 iPad 上显示

    无论我使用资产目录还是传统方式 我都会遇到这个问题 所有情况下均使用 Xcode 5 1 1 我已经输入了所有图像 并且 Xcode 没有给出 您缺少 568 h 错误或任何其他信息 但是当我启动应用程序时 我的启动图像仅显示在 iPad
  • SQL Server 2005:可为空的外键约束

    我在表会话和用户之间有外键约束 具体来说 Sessions UID Users ID 有时 我希望 Sessions UID 为空 这可以被允许吗 每当我尝试这样做时 我都会遇到 FK 约束违规 具体来说 我通过 LINQ 将一行插入到 S
  • 单例模式与 Web 应用程序,不是一个好主意!

    我发现了一些有趣的东西 我在调试其他东西时幸运地注意到了它 我正在应用 MVP 模式 并制作了一个单例控制器以在所有演示文稿之间共享 突然我发现有些事件在第一次回发时被调用一次 如果有两次回发则调用两次 如果有100次回发则调用100次 因
  • JavaScript 错误:“不是构造函数”

    我使用backbone js以及jquery和underscore js 这是我的一些代码 它还没有做任何事情 奇怪的是 点击 url users 后没有错误 发生错误的唯一一次是当我单击转到不同的哈希 然后单击返回转到 users 时 这
  • 在Python中动态评估简单的布尔逻辑

    我有一些动态生成的布尔逻辑表达式 例如 A 或 B 和 C 或 D A 或 A 和 B A 空 计算结果为 True 占位符被替换为布尔值 我是不是该 将此信息转换为 Python 表达式 例如True or True or False a
  • 如何模拟dbcontext?

    我正在使用实体框架核心 1 0 rc2 这是班级 public class ApplicationDbContext DbContext public ApplicationDbContext DbContextOptions
  • 如何定义两个实体之间的多重关系?

    我有一个场景user可以上传多个photos 一对多 这user还可以有默认照片 一对一 然而 我实体框架core 2 0告诉我当我使用以下代码时他无法识别这种关系 public class User public Guid Id get
  • 如果在嵌套集合上使用 SelectMany,则保留父实例

    我有我的模型的集合Person class Person public string FirstName get set public string LastName get set public string Company get se