Diese Erweiterungsmethoden zählen die Vorkommen eines Teilstrings im gesamten String.
/// <summary>
/// Zählt die Anzahl der Vorkommen einer bestimmten Teilzeichenfolge in dieser Zeichenfolge.
/// </summary>
/// <param name="source">Die zu durchsuchende Zeichenfolge.</param>
/// <param name="pattern">Die zu suchende Teilzeichenfolge.</param>
/// <returns>Die Anzahl von <paramref name="pattern"/> in <paramref name="source"/>.</returns>
public static int CountOccurences(this string source, string pattern)
{
return CountOccurences(source, pattern, StringComparison.CurrentCulture);
}
/// <summary>
/// Zählt die Anzahl der Vorkommen einer bestimmten Teilzeichenfolge in dieser Zeichenfolge.
/// </summary>
/// <param name="source">Die zu durchsuchende Zeichenfolge.</param>
/// <param name="pattern">Die zu suchende Teilzeichenfolge.</param>
/// <param name="comparisonType">Die zu nutzende Vergleichsart.</param>
/// <returns>Die Anzahl von <paramref name="pattern"/> in <paramref name="source"/>.</returns>
public static int CountOccurences(this string source, string pattern, StringComparison comparisonType)
{
if (source == null)
{
throw new ArgumentNullException("source");
}
if (pattern == null)
{
throw new ArgumentNullException("pattern");
}
if (!Enum.IsDefined(typeof(StringComparison), comparisonType))
{
throw new ArgumentOutOfRangeException("comparisonType");
}
if (pattern.Length == 0)
{
return -1;
}
int result = 0;
int currentIndex = 0;
while (currentIndex != -1)
{
currentIndex = source.IndexOf(pattern, currentIndex, comparisonType);
if (currentIndex != -1)
{
result++;
currentIndex++;
}
}
return result;
}
Kommentare zum Snippet