String.Contains Метод

Определение

Перегрузки

Contains(Char)

Возвращает значение, указывающее, встречается ли указанный символ внутри этой строки.

Contains(String)

Возвращает значение, указывающее, встречается ли указанная подстрока внутри этой строки.

Contains(Char, StringComparison)

Возвращает значение, указывающее, встречается ли указанный символ внутри этой строки, используя указанные правила сравнения.

Contains(String, StringComparison)

Возвращает значение, указывающее, встречается ли указанная строка внутри этой строки, используя указанные правила сравнения.

Contains(Char)

Возвращает значение, указывающее, встречается ли указанный символ внутри этой строки.

public:
 bool Contains(char value);
public bool Contains (char value);
member this.Contains : char -> bool
Public Function Contains (value As Char) As Boolean

Параметры

value
Char

Символ для поиска.

Возвращаемое значение

Boolean

Значение true, если параметр value выполняется внутри этой строки; в противном случае — значение false.

Комментарии

Этот метод выполняет порядковое сравнение (с учетом регистра и без учета языка и региональных параметров).

Применяется к

Contains(String)

Возвращает значение, указывающее, встречается ли указанная подстрока внутри этой строки.

public:
 bool Contains(System::String ^ value);
public bool Contains (string value);
member this.Contains : string -> bool
Public Function Contains (value As String) As Boolean

Параметры

value
String

Строка для поиска.

Возвращаемое значение

Boolean

true, если параметр value встречается в строке или value является пустой строкой (""); в противном случае — false.

Исключения

value имеет значение null.

Примеры

В следующем примере определяется, является ли строка "fox" подстрокой знакомой кавычки. Если в строке найдена лиса, она также отображает начальную позицию.

using namespace System;

int main()
{
   String^ s1 = "The quick brown fox jumps over the lazy dog";
   String^ s2 = "fox";
   bool b = s1->Contains( s2 );
   Console::WriteLine( "Is the string, s2, in the string, s1?: {0}", b );
   if (b) {
      int index = s1->IndexOf(s2);
      if (index >= 0)
         Console::WriteLine("'{0} begins at character position {1}",
                            s2, index + 1);
   }
}
// This example displays the following output:
//    'fox' is in the string 'The quick brown fox jumps over the lazy dog': True
//    'fox begins at character position 17
string s1 = "The quick brown fox jumps over the lazy dog";
string s2 = "fox";
bool b = s1.Contains(s2);
Console.WriteLine("'{0}' is in the string '{1}': {2}",
                s2, s1, b);
if (b) {
    int index = s1.IndexOf(s2);
    if (index >= 0)
        Console.WriteLine("'{0} begins at character position {1}",
                      s2, index + 1);
}
// This example displays the following output:
//    'fox' is in the string 'The quick brown fox jumps over the lazy dog': True
//    'fox begins at character position 17
let s1 = "The quick brown fox jumps over the lazy dog"
let s2 = "fox"
let b = s1.Contains s2
printfn $"'{s2}' is in the string '{s1}': {b}"
if b then
    let index = s1.IndexOf s2
    if index >= 0 then
        printfn $"'{s2} begins at character position {index + 1}"
// This example displays the following output:
//    'fox' is in the string 'The quick brown fox jumps over the lazy dog': True
//    'fox begins at character position 17
Class Example
   Public Shared Sub Main()
      Dim s1 As String = "The quick brown fox jumps over the lazy dog"
      Dim s2 As String = "fox"
      Dim b As Boolean = s1.Contains(s2)
      Console.WriteLine("'{0}' is in the string '{1}': {2}",
                        s2, s1, b)
      If b Then
          Dim index As Integer = s1.IndexOf(s2)
          If index >= 0 Then
             Console.WriteLine("'{0} begins at character position {1}",
                               s2, index + 1)
          End If
       End If
   End Sub
End Class
'
' This example displays the following output:
'    'fox' is in the string 'The quick brown fox jumps over the lazy dog': True
'    'fox begins at character position 17

Комментарии

Этот метод выполняет порядковое сравнение (с учетом регистра и без учета языка и региональных параметров). Поиск начинается с первой позиции символа этой строки и продолжается до последней позиции символа.

Чтобы выполнить сравнение без учета регистра с учетом языка и региональных параметров, выполните приведенные далее действия.

  • В .NET Core 2.1 и более поздних версиях: вызов перегрузкиContains(String, StringComparison).

  • В платформа .NET Framework: создайте пользовательский метод. В следующем примере показан такой подход. Он определяет String метод расширения, который включает StringComparison параметр и указывает, содержит ли строка подстроку при использовании указанной формы сравнения строк.

using System;

public static class StringExtensions
{
   public static bool Contains(this String str, String substring, 
                               StringComparison comp)
   {                            
        if (substring == null)
            throw new ArgumentNullException("substring", 
                                         "substring cannot be null.");
        else if (! Enum.IsDefined(typeof(StringComparison), comp))
            throw new ArgumentException("comp is not a member of StringComparison",
                                     "comp");

        return str.IndexOf(substring, comp) >= 0;                      
   }
}
open System
open System.Runtime.CompilerServices

[<Extension>]
type StringExtensions =
    [<Extension>]
    static member Contains(str: string, substring, comp: StringComparison) =
        if substring = null then
            invalidArg "substring" "substring cannot be null"
        if Enum.IsDefined(typeof<StringComparison>, comp) |> not then
            invalidArg "comp" "comp is not a member of StringComparison"
        str.IndexOf(substring, comp) >= 0
String s = "This is a string.";
String sub1 = "this";
Console.WriteLine("Does '{0}' contain '{1}'?", s, sub1);
StringComparison comp = StringComparison.Ordinal;
Console.WriteLine("   {0:G}: {1}", comp, s.Contains(sub1, comp));

comp = StringComparison.OrdinalIgnoreCase;
Console.WriteLine("   {0:G}: {1}", comp, s.Contains(sub1, comp));

// The example displays the following output:
//       Does 'This is a string.' contain 'this'?
//          Ordinal: False
//          OrdinalIgnoreCase: True
let s = "This is a string."
let sub1 = "this"
printfn $"Does '{s}' contain '{sub1}'?"
let comp = StringComparison.Ordinal
printfn $"   {comp:G}: {s.Contains(sub1, comp)}"

let comp2 = StringComparison.OrdinalIgnoreCase
printfn $"   {comp2:G}: {s.Contains(sub1, comp2)}"

// The example displays the following output:
//       Does 'This is a string.' contain 'this'?
//          Ordinal: False
//          OrdinalIgnoreCase: True
Imports System.Runtime.CompilerServices

Module StringExtensions
   <Extension()>
   Public Function Contains(str As String, substring As String, 
                            comp As StringComparison) As Boolean
      If substring Is Nothing Then
         Throw New ArgumentNullException("substring", 
                                         "substring cannot be null.")
      Else If Not [Enum].IsDefined(GetType(StringComparison), comp)
         Throw New ArgumentException("comp is not a member of StringComparison",
                                     "comp")
      End If                               
      Return str.IndexOf(substring, comp) >= 0                      
   End Function
End Module
Public Module Example
   Public Sub Main
      Dim s As String = "This is a string."
      Dim sub1 As String = "this"
      Console.WriteLine("Does '{0}' contain '{1}'?", s, sub1)
      Dim comp As StringComparison = StringComparison.Ordinal
      Console.WriteLine("   {0:G}: {1}", comp, s.Contains(sub1, comp))
      
      comp = StringComparison.OrdinalIgnoreCase
      Console.WriteLine("   {0:G}: {1}", comp, s.Contains(sub1, comp))
   End Sub
End Module
' The example displays the following output:
'       Does 'This is a string.' contain 'this'?
'          Ordinal: False
'          OrdinalIgnoreCase: True

Если вы заинтересованы в позиции подстроки value в текущем экземпляре, можно вызвать IndexOf метод, чтобы получить начальную позицию первого вхождения, или вызвать LastIndexOf метод, чтобы получить начальную позицию последнего вхождения. Пример включает вызов IndexOf(String) метода, если подстрока найдена в строковом экземпляре.

См. также раздел

Применяется к

Contains(Char, StringComparison)

Возвращает значение, указывающее, встречается ли указанный символ внутри этой строки, используя указанные правила сравнения.

public:
 bool Contains(char value, StringComparison comparisonType);
public bool Contains (char value, StringComparison comparisonType);
member this.Contains : char * StringComparison -> bool
Public Function Contains (value As Char, comparisonType As StringComparison) As Boolean

Параметры

value
Char

Символ для поиска.

comparisonType
StringComparison

Одно из значений перечисления, определяющее используемые при сравнении правила.

Возвращаемое значение

Boolean

Значение true, если параметр value выполняется внутри этой строки; в противном случае — значение false.

Применяется к

Contains(String, StringComparison)

Возвращает значение, указывающее, встречается ли указанная строка внутри этой строки, используя указанные правила сравнения.

public:
 bool Contains(System::String ^ value, StringComparison comparisonType);
public bool Contains (string value, StringComparison comparisonType);
member this.Contains : string * StringComparison -> bool
Public Function Contains (value As String, comparisonType As StringComparison) As Boolean

Параметры

value
String

Строка для поиска.

comparisonType
StringComparison

Одно из значений перечисления, определяющее используемые при сравнении правила.

Возвращаемое значение

Boolean

true, если параметр value встречается в строке или value является пустой строкой (""); в противном случае — false.

Применяется к