c# - 元组与 GroupBy
问题描述
我有一个Tuple<string,string>
在这个元组中,我可以拥有这个:
"<GOOD>10</GOOD>","5"
"<GOOD>TEST</GOOD>","8"
"<GOOD>TEMP</GOOD>","5"
"<GOOD>CAT</GOOD>","7"
"<GOOD>DOG</GOOD>","7"
我想将元组的所有第一项分组并将其放在字典中:
"5","<GOOD>10</GOOD><GOOD>TEMP</GOOD>"
"8","<GOOD>TEST</GOOD>"
"7","<GOOD>CAT</GOOD><GOOD>DOG</GOOD>"
我怎样才能做到这一点?
解决方案
ATuple<T1,T2>
只能有一项 forT1
和一项 for T2
。假设您有一个集合,Tuple<string, string>
您可以使用以下内容:
var dict = tuples.GroupBy(t => t.Item2)
.ToDictionary(g => g.Key, g => string.Concat(g.Select(t => t.Item1)));
这是一个完整的例子:
var tuples = new List<Tuple<string, string>>();
tuples.Add(Tuple.Create("<GOOD>10</GOOD>", "5"));
tuples.Add(Tuple.Create("<GOOD>TEST</GOOD>", "8"));
tuples.Add(Tuple.Create("<GOOD>TEMP</GOOD>", "5"));
tuples.Add(Tuple.Create("<GOOD>CAT</GOOD>", "7"));
tuples.Add(Tuple.Create("<GOOD>DOG</GOOD>", "7"));
var dict = tuples.GroupBy(t => t.Item2)
.ToDictionary(g => g.Key, g => string.Concat(g.Select(t => t.Item1)));
在线尝试。
请注意,这也适用于ValueTuples。这是一个例子。
推荐阅读
- jquery - 下拉问题中的 JQuery replaceWith()
- r - 安装 MSA 包时依赖项 gtools 不可用
- go - 为什么我不能通过同时计算切片的不同部分来加速我的程序?
- r - 将 X 列添加到 data.frame
- r - 如何将 table() 与 dplyr group by、从 purrr 映射和数据帧/小标题列表一起使用?(在 R 中)
- r - 绘制连续样本的距离作为它们在 R 中的时间滞后的函数
- swift - UICollectionView - 自定义日历滑动月/年
- python - 为什么 Django 正在查看错误的 urls 文件?
- azure - 将最新文件夹中的文件从 azure blob 存储加载到 azure 数据仓库
- javascript - HTML / CSS / JS拖放鼠标和触摸两个框之间的touchmove和mousemove?