计算c#中字符串中字符的重复次数

kar*_*tal 5 c# string

如何计算c#中字符串中字符的重复次数?例如我有sasysays重复的角色'是4

Tom*_*cek 16

这是一个使用LINQ的版本(使用扩展方法编写):

int s = str.Where(c => c == 's').Count();
Run Code Online (Sandbox Code Playgroud)

它使用的事实,stringIEnumerable<char>的,所以我们可以过滤等于你要找的人的所有字符再算上选择的元素的数量.实际上,您可以只写这个(因为该Count方法允许您指定应该为所有计数元素保留的谓词):

int s = str.Count(c => c == 's');
Run Code Online (Sandbox Code Playgroud)

  • 为了让Intellisense为您提供LINQ扩展方法,您可能必须将字符串转换为`IEnumerable <char>`. (2认同)

Kob*_*obi 7

另一种选择是:

int numberOfS = str.Count('s'.Equals);
Run Code Online (Sandbox Code Playgroud)

这有点倒退 - 's'是一个char,每个char都有一个Equals方法,可以用作参数Count.
当然,这不如灵活性c => c == 's'- 你不能轻易地将它改变成复杂的条件.