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;
}
Kommentare zum Snippet