aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Extensions/StringExtensions.cs
diff options
context:
space:
mode:
authorBond-009 <bond.009@outlook.com>2021-06-12 00:20:54 +0200
committerGitHub <noreply@github.com>2021-06-12 00:20:54 +0200
commitcfad97ff28339088ab86c40661bb407024285a7c (patch)
tree152c04363e23e233229a7b40080d388a13046657 /MediaBrowser.Controller/Extensions/StringExtensions.cs
parentadf406b1821800bbf1b214c4ac673defa362e4f4 (diff)
parent66de8428960ec751521386c27e37909cf73add9e (diff)
Merge pull request #6096 from cvium/saving_private_ram
Diffstat (limited to 'MediaBrowser.Controller/Extensions/StringExtensions.cs')
-rw-r--r--MediaBrowser.Controller/Extensions/StringExtensions.cs21
1 files changed, 21 insertions, 0 deletions
diff --git a/MediaBrowser.Controller/Extensions/StringExtensions.cs b/MediaBrowser.Controller/Extensions/StringExtensions.cs
index 1853896ee..291485e75 100644
--- a/MediaBrowser.Controller/Extensions/StringExtensions.cs
+++ b/MediaBrowser.Controller/Extensions/StringExtensions.cs
@@ -22,6 +22,27 @@ namespace MediaBrowser.Controller.Extensions
return Normalize(string.Concat(chars), NormalizationForm.FormC);
}
+ /// <summary>
+ /// Counts the number of occurrences of [needle] in the string.
+ /// </summary>
+ /// <param name="value">The haystack to search in.</param>
+ /// <param name="needle">The character to search for.</param>
+ /// <returns>The number of occurrences of the [needle] character.</returns>
+ public static int CountOccurrences(this ReadOnlySpan<char> value, char needle)
+ {
+ var count = 0;
+ var length = value.Length;
+ for (var i = 0; i < length; i++)
+ {
+ if (value[i] == needle)
+ {
+ count++;
+ }
+ }
+
+ return count;
+ }
+
private static string Normalize(string text, NormalizationForm form, bool stripStringOnFailure = true)
{
if (stripStringOnFailure)