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
Snippet in VB übersetzen
/// <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!