Feedback

C# - StartsWidth/EndsWith mit mehreren Suchparametern

Veröffentlicht von am 30.05.2013
(2 Bewertungen)
Diese Methoden sind als Erweiterungen für den System.String-Typ implementiert. Sie entsprechen der Grundfunktionalität der StartsWith und EndsWith-Methoden. Nur das man bei meinen mehrere Vergleichswerte übergeben kann.

Das kann man beispielsweise einsetzen um einen Dateinamen auf bestimmte Typen zu überprüfen.

Hinweis: Ich habe zur besseren Eingliederung ins System auch Überladungen mit einem CultureInfo bzw. einem StringComparison hinzugefügt.

Hinweis: Die Abgleich-Strings können als Array oder durch Komma abgetrennt übergeben werden. Jeweils als letzten Parameter.

Nähere Informationen sind in der XML-Dokumentation enthalten.
/// <summary>
/// Bestimmt ob das Ende dieser Zeichenfolgeninstanz mit einer der angegebenen Zeichenfolge übereinstimmt.
/// </summary>
/// <param name="s">Die Zeichenfolgeninstanz, deren Ende vergleichen werden soll.</param>
/// <param name="a">Die zu vergleichenden Zeichenfolgen.</param>
/// <returns><c>True</c>, wenn das Ende der Zeichenfolgeninstanz mit einer der Vergleichszeichenfolgen übereinstimmt, andernfalls <c>False</c>.</returns>
public static bool EndsWith(this string s, params string[] a)
{
    foreach (string i in a)
        if (s.EndsWith(i))
            return true;
    return false;
}
/// <summary>
/// Bestimmt ob das Ende dieser Zeichenfolgeninstanz mit einer der angegebenen Zeichenfolge, unter Berücksichtigung der angegebenen Vergleichseinstellung, übereinstimmt.
/// </summary>
/// <param name="s">Die Zeichenfolgeninstanz, deren Ende vergleichen werden soll.</param>
/// <param name="c">Spezielle Einstellungen für den Vergleich.</param>
/// <param name="a">Die zu vergleichenden Zeichenfolgen.</param>
/// <returns><c>True</c>, wenn das Ende der Zeichenfolgeninstanz mit einer der Vergleichszeichenfolgen, unter berücksichtigungen der Vergleichseinstellungen, übereinstimmt, andernfalls <c>False</c>.</returns>
public static bool EndsWith(this string s, StringComparison c, params string[] a)
{
    foreach (string i in a)
        if (s.EndsWith(i, c))
            return true;
    return false;
}
/// <summary>
/// Bestimmt ob das Ende dieser Zeichenfolgeninstanz mit einer der angegebenen Zeichenfolge, unter Berücksichtigung der angegebenen Kultur, übereinstimmt.
/// </summary>
/// <param name="s">Die Zeichenfolgeninstanz, deren Ende vergleichen werden soll.</param>
/// <param name="ignoreCase"><c>True</c> wenn die Groß- bzw. Kleinschreibung ignoriert werden soll, andernfalls <c>False</c>.</param>
/// <param name="culture">Die Kultur, unter der der Vergleich stattfinden soll.</param>
/// <param name="a">Die zu vergleichenden Zeichenfolgen.</param>
/// <returns><c>True</c>, wenn das Ende der Zeichenfolgeninstanz mit einer der Vergleichszeichenfolgen, unter berücksichtigungen der angegebenen Kultur, übereinstimmt, andernfalls <c>False</c>.</returns>
public static bool EndsWith(this string s, bool ignoreCase, CultureInfo culture, params string[] a)
{
    foreach (string i in a)
        if (s.EndsWith(i, ignoreCase, culture))
            return true;
    return false;
}

/// <summary>
/// Bestimmt ob der Anfang dieser Zeichenfolgeninstanz mit einer der angegebenen Zeichenfolge übereinstimmt.
/// </summary>
/// <param name="s">Die Zeichenfolgeninstanz, deren Anfang vergleichen werden soll.</param>
/// <param name="a">Die zu vergleichenden Zeichenfolgen.</param>
/// <returns><c>True</c>, wenn der Anfang der Zeichenfolgeninstanz mit einer der Vergleichszeichenfolgen übereinstimmt, andernfalls <c>False</c>.</returns>
public static bool StartsWith(this string s, params string[] a)
{
    foreach (string i in a)
        if (s.StartsWith(i))
            return true;
    return false;
}
/// <summary>
/// Bestimmt ob der Anfang dieser Zeichenfolgeninstanz mit einer der angegebenen Zeichenfolge, unter Berücksichtigung der angegebenen Vergleichseinstellung, übereinstimmt.
/// </summary>
/// <param name="s">Die Zeichenfolgeninstanz, deren Anfang vergleichen werden soll.</param>
/// <param name="c">Spezielle Einstellungen für den Vergleich.</param>
/// <param name="a">Die zu vergleichenden Zeichenfolgen.</param>
/// <returns><c>True</c>, wenn der Anfang der Zeichenfolgeninstanz mit einer der Vergleichszeichenfolgen, unter berücksichtigungen der Vergleichseinstellungen, übereinstimmt, andernfalls <c>False</c>.</returns>
public static bool StartsWith(this string s, StringComparison c, params string[] a)
{
    foreach (string i in a)
        if (s.StartsWith(i, c))
            return true;
    return false;
}
/// <summary>
/// Bestimmt ob der Anfang dieser Zeichenfolgeninstanz mit einer der angegebenen Zeichenfolge, unter Berücksichtigung der angegebenen Kultur, übereinstimmt.
/// </summary>
/// <param name="s">Die Zeichenfolgeninstanz, deren Anfang vergleichen werden soll.</param>
/// <param name="ignoreCase"></param>
/// <param name="culture">Die Kultur, unter der der Vergleich stattfinden soll.</param>
/// <param name="a">Die zu vergleichenden Zeichenfolgen.</param>
/// <returns><c>True</c>, wenn der Anfang der Zeichenfolgeninstanz mit einer der Vergleichszeichenfolgen, unter berücksichtigungen der angegebenen Kultur, übereinstimmt, andernfalls <c>False</c>.</returns>
public static bool StartsWith(this string s, bool ignoreCase, CultureInfo culture, params string[] a)
{
    foreach (string i in a)
        if (s.StartsWith(i, ignoreCase, culture))
            return true;
    return false;
}

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!