我的列表单词列表中填充了单词:
List<string> WordList = new List<string> {
"BED", "CAT", "JUG", "BOAT", "FRUIT", "LABEL", "MOTOR", "SCORE" };
我想计算一下列表中有多少3,4和5个字母的单词。 我当然可以循环所有单词并检查它们的长度,但必须有更好的方法。 任何人对此都有任何想法吗?
答案 0 :(得分:6)
您可以对字符串的长度进行分组:
var result = WordList.GroupBy(s => s.Length)
.Select(x => new {x.Key, Amount = x.Count()});
答案 1 :(得分:3)
简单GroupBy
会做
List<string> WordList = new List<string> {
"BED", "CAT", "JUG", "BOAT", "FRUIT", "LABEL", "MOTOR", "SCORE" };
var result = WordList
.GroupBy(word => word.Length,
(key, data) => $"Letters: {key} Count: {data.Count()}");
Console.Write(string.Join(Environment.NewLine, result));
结果:
Letters: 3 Count: 3
Letters: 4 Count: 1
Letters: 5 Count: 4