gpt4 book ai didi

c# - 在 linq 中使用 GroupBy 对字符串的字母进行分组

转载 作者:太空狗 更新时间:2023-10-30 00:30:37 25 4
gpt4 key购买 nike

我正在尝试进入一个文件,提取文件中的单词并将文件字符串中的每个字母分组。分组应按其字母(a、b、c、d、等..)排序,然后计算每个字母并将每个字母的计数呈现给控制台,如下所示:

一个:56乙:34c: 53d:

所以我正在使用以下代码,但我认为它没有按照我想要的方式工作,有人有什么想法吗?谢谢!

var text = System.IO.File.ReadAllText("file.txt");
var upper = text.ToUpper();
var alpha = upper.Where(char.IsLetter).ToArray();
var grouped = alpha.GroupBy(i => i % 26);
var a = grouped.First(g => g.Key == 0).Count();

最佳答案

您需要在 GroupBy 之后使用 Select 来获得您需要的结果:

var result = text
.ToUpper()
.Where(char.IsLetter)
.GroupBy(c => c)
.Select(g => new { Letter = g.Key, Count = g.Count() });

然后将结果格式化为 "a: 56 b: 34 c: 53" 您可以使用 string.Joinstring.Format:

string formattedResult = string.Join(" ", result.Select(x => string.Format("{0}: {1}", x.Letter, x.Count)));

关于c# - 在 linq 中使用 GroupBy 对字符串的字母进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34485491/

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