c#计算列表中具有一定长度的字符串

时间:2017-02-15 07:46:47

标签: c# .net list count

我的列表单词列表中填充了单词:

List<string> WordList = new List<string> { 
  "BED", "CAT", "JUG", "BOAT", "FRUIT", "LABEL", "MOTOR", "SCORE" };

我想计算一下列表中有多少3,4和5个字母的单词。 我当然可以循环所有单词并检查它们的长度,但必须有更好的方法。 任何人对此都有任何想法吗?

2 个答案:

答案 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