Feedback

C# - String: Index des n-ten Vorkommens ermitteln

Veröffentlicht von am 01.10.2015
(0 Bewertungen)
Diese Erweiterungsmethoden geben den Index eines Vorkommens zurück, nachdem die angegebene Anzahl an vorher auftretenden Vorkommen ignoriert wurde.

Benötigter Namespace
System
/// <summary>
/// Bestimmt den n-ten Index des Vorkommens einer Teilzeichenfolge in einer anderen Zeichenfolge.
/// </summary>
/// <param name="source">Die zu durchsuchende Zeichenfolge.</param>
/// <param name="pattern">Die zu suchende Teilzeichenfolge.</param>
/// <param name="ignore">Die Anzahl der zu Vorkommen vor dem zu findenden.</param>
/// <returns>Der Index des <paramref name="ignore"/>-ten Vorkommens von <paramref name="pattern"/> 
/// in <paramref name="source"/>.</returns>
public static int IndexOfNthOccurence(this string source, string pattern, uint ignore)
{
    return IndexOfNthOccurence(source, pattern, ignore, StringComparison.CurrentCulture);
}

/// <summary>
/// Bestimmt den n-ten Index des Vorkommens einer Teilzeichenfolge in einer anderen Zeichenfolge.
/// </summary>
/// <param name="source">Die zu durchsuchende Zeichenfolge.</param>
/// <param name="pattern">Die zu suchende Teilzeichenfolge.</param>
/// <param name="ignore">Die Anzahl der zu Vorkommen vor dem zu findenden.</param>
/// <param name="comparisonType">Gibt den Vergleichstyp an.</param>
/// <returns>Der Index des <paramref name="ignore"/>-ten Vorkommens von <paramref name="pattern"/> 
/// in <paramref name="source"/>.</returns>
public static int IndexOfNthOccurence(this string source, string pattern, uint ignore, StringComparison comparisonType)
{
    if (source == null)
    {
        throw new ArgumentNullException("source");
    }
    if (pattern == null)
    {
        throw new ArgumentNullException("pattern");
    }
    if (pattern.Length == 0)
    {
        return -1;
    }

    int currentIndex = 0;
    while (currentIndex != -1)
    {
        currentIndex = source.IndexOf(pattern, currentIndex, comparisonType);
        if (currentIndex != -1)
        {
            ignore--;
            currentIndex++;
            if (ignore == 0)
                return currentIndex - 1;
        }
    }
    return -1;
}
Abgelegt unter String, IndexOf, Occurences, Vorkommen.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!