c# - 一个字符串中有多少个指定的字符?

标签 c# .net-3.5 string

以字符串为例 550e8400-e29b-41d4-a716-446655440000 如何计算出多少 - 字符在这样的字符串中?

我目前正在使用:

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

有没有我们不需要加 1 的方法...比如使用 Count

所有其他方法如

Contains IndexOf 等只返回第一个位置和一个boolean值,没有返回多少被找到.

我错过了什么?

最佳答案

您可以使用 LINQ 方法 Enumerable.Count 为此目的(注意 stringIEnumerable<char> ):

int numberOfHyphens = text.Count(c => c == '-');

参数是一个 Func<char, bool> ,一个指定项目何时被视为“通过”过滤器的谓词。

这(粗略地说)等同于:

int numberOfHyphens = 0;

foreach (char c in text)
{
    if (c == '-') numberOfHyphens++;
}

关于c# - 一个字符串中有多少个指定的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3959004/

相关文章:

C# 字符串与字符串, boolean 与 boolean 值

c# - WPF 的最佳实践 - 每个 GUI 元素都需要绑定(bind)吗?

asp.net - FormView ConvertEmptyStringToNull 和绑定(bind)

c# - 在只有 2.0 框架的服务器上执行编译后的 3.5 代码时出现问题

c - 如何将字符串转换为无符号整数? C

c# - Entity Framework Core SaveChanges 不更新记录

c# - MSMQ - 反复处理的消息

java - Ubuntu 下 String.join 方法出错

c - 打印函数返回值时出现段错误

c# - 如果 ImageButton 是在代码后面创建的,如何使用 ImageButton.OnClick