首页 > 解决方案 > 使用 LINQ 计算字符串中字母的出现次数

问题描述

我试图实现一段代码,它将返回字符串中指定字母的计数。我可以使用 for 循环来做到这一点,但我发现使用 LINQ 表达式的解决方案更优雅。这是我的代码:

public static int CountAs(string countA)
{

    var test = count.Select(x => x == 'a').Count();
        
    return test;

}

我试图计算countA参数中存在多少个小写字母a。我的代码有什么问题?

先感谢您!

更新

我应该使用的方法是Where方法而不是Select方法。使用它解决了我的问题!该函数可以重写为:

public static int CountAs(string input)
{
   return input.Where(x => x == 'a').Count();
}

或者,您可以只使用 Count 方法直接过滤掉所需的字母:

public static int CountAs(string input)
{
   return input.Where(x => x == 'a').Count();
}

感谢所有前来救援的人!!

标签: c#linq

解决方案


使用.Where而不是.Select. .Where查找符合您的条件的项目,同时.Select告诉它如果您需要转换它们,如何返回所述项目。


推荐阅读