c# - LINQ 计数具有倍数的 XML 元素
问题描述
这里有点问题,也许是因为我累了,我很难用文字来解释我的问题,但我想要的基本上是一个 group by,除了 XML 元素可以有多个相同类型的元素. 我正在尝试在 C# 中使用 LINQ 示例:我有这个 XML
<?xml version="1.0" encoding="utf-8"?>
<test>
<test1>
<test2>1</test2>
</test1>
<test1>
<test2>2</test2>
</test1>
<test1>
<test2>1</test2>
<test2>3</test2>
<test2>4</test2>
</test1>
<test1>
<test2>1</test2>
<test2>2</test2>
</test1>
<test1>
<test2>5</test2>
</test1>
</test>
我想计算有多少 test1 元素有一个值为 1、2 等的 test2 元素,所以输出应该是这样的:
1:3
2:2
3:1
4:1
5:1
但我似乎无法让程序在给定 test1 元素中的第一个元素之后关心 test2 元素。另外,第一次在这里发帖,所以如果我搞砸了,对我来说很轻松
解决方案
Console.WriteLine(string.Join("\n", test.XPathSelectElements("//test2")
.GroupBy(x => x.Value, (k, g) => $"{k}: {g.Count()}")
));
推荐阅读
- javascript - Javascript、php 和联系表的问题
- c# - 无法解决 Azure Active Directory 代码中的异常
- c# - 使用 System.Text.Json.JsonSerializer 处理无效的 UTF-16 字符
- python - 将帖子中提到的用户名作为个人资料链接返回到帖子中的那些用户
- http-live-streaming - 直播音频 HLS 流无法播放
- google-chrome-extension - Chrome标签查询返回空标签数组
- sql - 识别 Redshift SQL 中的层次结构
- php - UpdateOrCreate 与模型实例
- python - python中的嵌套列表和字典
- node.js - 如何通过 node 目录中的 package.json 将特定包安装到不同的目录中?