Sprache: C#
Diese Methode durchsucht einen String auf mehrere andere Strings. Dabei können Optionen für den Vergleich sowie eine Option für den Suchmodus angegeben werden.
Wenn der Suchmodus auf [u]One[/u] steht muss mindestens ein String aus dem Array gefunden werden, bei [u]All[/u] müssen alle Teilzeichenfolgen gefunden werden.
Diese Methode ist als Erweiterung für System.String implementiert. Sie kann so verwendet werden:
[code]string s = "Test123";
Console.WriteLine(s.Contains(new string[] { }, StringComparison.CurrentCulture, StringContainsMode.All));
Console.WriteLine(s.Contains(new string[] { }, StringComparison.CurrentCulture, StringContainsMode.One));
Console.WriteLine(s.Contains(new string[] { "123", "456" }, StringComparison.CurrentCulture, StringContainsMode.All));
Console.WriteLine(s.Contains(new string[] { "123", "456" }, StringComparison.CurrentCulture, StringContainsMode.One));
Console.ReadKey();[/code]
static class Extensions
{
/// <summary>
/// Gibt einen Wert zurück, der angibt ob ein- oder mehrere System.String-Objekte in dieser Zeichenfolge vorkommen.
/// </summary>
/// <param name="s">Die Zeichenfolge in der gesucht werden soll.</param>
/// <param name="c">Die zu suchenden Teilzeichenfolgen.</param>
/// <param name="m1">Der Modus, wie die Teilzeichenketten mit dieser Zeichenfolge verglichen werden sollen.</param>
/// <param name="m2">Der Modus, wie gesucht werden soll.</param>
/// <returns>true wenn die Teilzeichenfolgen in den angegebenen Modi in dieser Zeichenfolge vorkommen, andernfalls false.</returns>
public static bool Contains(this string s, string[] c, StringComparison m1, StringContainsMode m2)
{
if (string.IsNullOrWhiteSpace(s) || c.Length == 0)
return false;
if (m2 == StringContainsMode.One)
{
foreach (string i in c)
if (s.IndexOf(i, m1) > -1 && !string.IsNullOrWhiteSpace(i))
return true;
return false;
}
else
{
foreach (string i in c)
if (!(s.IndexOf(i, m1) > -1 && !string.IsNullOrWhiteSpace(i)))
return false;
return true;
}
}
}
enum StringContainsMode
{
One,
All,
}
static class Extensions
{
/// <summary>
/// Gibt einen Wert zurück, der angibt ob ein- oder mehrere System.String-Objekte in dieser Zeichenfolge vorkommen.
/// </summary>
/// <param name="s">Die Zeichenfolge in der gesucht werden soll.</param>
/// <param name="c">Die zu suchenden Teilzeichenfolgen.</param>
/// <param name="m1">Der Modus, wie die Teilzeichenketten mit dieser Zeichenfolge verglichen werden sollen.</param>
/// <param name="m2">Der Modus, wie gesucht werden soll.</param>
/// <returns>true wenn die Teilzeichenfolgen in den angegebenen Modi in dieser Zeichenfolge vorkommen, andernfalls false.</returns>
public static bool Contains(this string s, string[] c, StringComparison m1, StringContainsMode m2)
{
if (string.IsNullOrWhiteSpace(s) || c.Length == 0)
return false;
if (m2 == StringContainsMode.One)
{
foreach (string i in c)
if (s.IndexOf(i, m1) > -1 && !string.IsNullOrWhiteSpace(i))
return true;
return false;
}
else
{
foreach (string i in c)
if (!(s.IndexOf(i, m1) > -1 && !string.IsNullOrWhiteSpace(i)))
return false;
return true;
}
}
}
enum StringContainsMode
{
One,
All,
}
Alte URL:
/snippet/string-auf-mehrere-teilstrings-durchsuchen/1686