字符串中有多少个指定的字符?

bal*_*dre 3 c# string .net-3.5

采用一个字符串示例,550e8400-e29b-41d4-a716-446655440000如何计算 -这样的字符串中有多少个字符?

我目前正在使用:

int total = "550e8400-e29b-41d4-a716-446655440000".Split('-').Length + 1;
Run Code Online (Sandbox Code Playgroud)

是否有任何方法我们不需要添加1 ...就像使用Count可能?

所有其他方法如

Contains IndexOf等只返回第一位置和boolean价值,没有返回多少被发现.

我错过了什么?

Ani*_*Ani 17

您可以使用LINQ方法Enumerable.Count来实现此目的(请注意a string是一个IEnumerable<char>):

int numberOfHyphens = text.Count(c => c == '-');
Run Code Online (Sandbox Code Playgroud)

参数是a Func<char, bool>,一个谓词,用于指定项目何时被视为"通过"过滤器.

这(松散地说)相当于:

int numberOfHyphens = 0;

foreach (char c in text)
{
    if (c == '-') numberOfHyphens++;
}
Run Code Online (Sandbox Code Playgroud)

  • +1解释这是LINQ的一部分,以及为什么它可以工作。 (2认同)

cod*_*nix 5

using System.Linq;

..

int total = "550e8400-e29b-41d4-a716-446655440000".Count(c => c == '-');
Run Code Online (Sandbox Code Playgroud)