gpt4 book ai didi

c# - 如何拆分列表但保留 groupBy

转载 作者:太空宇宙 更新时间:2023-11-03 16:04:21 24 4
gpt4 key购买 nike

我有以下形式的键/值对列表:

[{John:6},{Alex:100},{Peter:4},{Peter,John:5},{Alex,Kati:1}]

我想知道是否有一个简单的 linq 表达式可以用来将列表翻译成

[{John:11},{Alex:101},{Peter:9},{Kati:1}]

即用逗号分割字符串并调整计数。

上面的列表来自下面的LINQ

var list = people.Where(a => !string.IsNullOrWhiteSpace(a.Name))
.GroupBy(a => a.Name.Trim()).Select(a => new User { Name = a.Key, Items= a.Count() });

最佳答案

var list = new[]
{
new KeyValuePair<string, int>("John", 6),
new KeyValuePair<string, int>("Alex", 100),
new KeyValuePair<string, int>("Peter", 4),
new KeyValuePair<string, int>("Peter,John", 5),
new KeyValuePair<string, int>("Alex,Kati", 1)
};

这个分组

var modifiedList = list.SelectMany(p => p.Key.Split(',').Select(n => new {Name = n, Number = p.Value}))
.GroupBy(p => p.Name).Select(g => new KeyValuePair<string, int>(g.Key, g.Sum(r => r.Number)));

给你输出

{[John, 11]}
{[Alex, 101]}
{[Peter, 9]}
{[Kati, 1]}

关于c# - 如何拆分列表但保留 groupBy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20011746/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com