İngilizce dilinde oku

Aracılığıyla paylaş


String.IndexOf Yöntem

Tanım

Bu örnekte belirtilen Unicode karakterinin veya dizesinin ilk oluşumunun sıfır tabanlı dizinini bildirir. Bu örnekte karakter veya dize bulunmadığında, yöntem -1 döndürür.

Aşırı Yüklemeler

IndexOf(String, Int32, Int32, StringComparison)

Geçerli String nesnede belirtilen dizenin ilk oluşumunun sıfır tabanlı dizinini raporlar. Parametreler geçerli dizedeki başlangıç arama konumunu, aranacak geçerli dizedeki karakter sayısını ve belirtilen dize için kullanılacak arama türünü belirtir.

IndexOf(String, Int32, Int32)

Bu örnekte belirtilen dizenin ilk oluşumunun sıfır tabanlı dizinini raporlar. Arama belirtilen karakter konumunda başlar ve belirtilen sayıda karakter konumunu inceler.

IndexOf(Char, Int32, Int32)

Bu örnekte belirtilen karakterin ilk oluşumunun sıfır tabanlı dizinini raporlar. Arama belirtilen karakter konumunda başlar ve belirtilen sayıda karakter konumunu inceler.

IndexOf(String, StringComparison)

Geçerli String nesnede belirtilen dizenin ilk oluşumunun sıfır tabanlı dizinini raporlar. Parametresi, belirtilen dize için kullanılacak arama türünü belirtir.

IndexOf(String, Int32, StringComparison)

Geçerli String nesnede belirtilen dizenin ilk oluşumunun sıfır tabanlı dizinini raporlar. Parametreler geçerli dizedeki başlangıç arama konumunu ve belirtilen dize için kullanılacak arama türünü belirtir.

IndexOf(Char, StringComparison)

Bu dizede belirtilen Unicode karakterinin ilk oluşumunun sıfır tabanlı dizinini bildirir. Parametre, belirtilen karakter için kullanılacak arama türünü belirtir.

IndexOf(Char, Int32)

Bu dizede belirtilen Unicode karakterinin ilk oluşumunun sıfır tabanlı dizinini bildirir. Arama belirtilen karakter konumunda başlar.

IndexOf(String)

Bu örnekte belirtilen dizenin ilk oluşumunun sıfır tabanlı dizinini raporlar.

IndexOf(Char)

Bu dizede belirtilen Unicode karakterinin ilk oluşumunun sıfır tabanlı dizinini bildirir.

IndexOf(String, Int32)

Bu örnekte belirtilen dizenin ilk oluşumunun sıfır tabanlı dizinini raporlar. Arama belirtilen karakter konumunda başlar.

IndexOf(String, Int32, Int32, StringComparison)

Kaynak:
String.Searching.cs
Kaynak:
String.Searching.cs
Kaynak:
String.Searching.cs

Geçerli String nesnede belirtilen dizenin ilk oluşumunun sıfır tabanlı dizinini raporlar. Parametreler geçerli dizedeki başlangıç arama konumunu, aranacak geçerli dizedeki karakter sayısını ve belirtilen dize için kullanılacak arama türünü belirtir.

C#
public int IndexOf (string value, int startIndex, int count, StringComparison comparisonType);

Parametreler

value
String

Aranacak dize.

startIndex
Int32

Arama başlama konumu.

count
Int32

İncelenecek karakter konumlarının sayısı.

comparisonType
StringComparison

Arama kurallarını belirten numaralandırma değerlerinden biri.

Döndürülenler

Bu dize bulunursa geçerli örneğin başlangıcından value parametrenin sıfır tabanlı dizin konumu veya bulunamazsa -1. ise valueEmpty, dönüş değeri olur startIndex.

Özel durumlar

value, null değeridir.

count veya startIndex negatiftir.

-veya-

startIndex bu örneğin uzunluğundan daha büyük.

-veya-

count , bu dizenin uzunluğundan eksi startIndexdeğerinden büyük.

comparisonType geçerli StringComparison bir değer değil.

Örnekler

Aşağıdaki örnekte, numaralandırmanın IndexOf farklı değerlerini kullanan bir dizenin başka bir dize içinde ilk oluşumunu bulan yöntemin StringComparison üç aşırı yüklemesi gösterilmektedir.

C#
// This code example demonstrates the 
// System.String.IndexOf(String, ..., StringComparison) methods.

using System;
using System.Threading;
using System.Globalization;

class Sample 
{
    public static void Main() 
    {
    string intro = "Find the first occurrence of a character using different " + 
                   "values of StringComparison.";
    string resultFmt = "Comparison: {0,-28} Location: {1,3}";

// Define a string to search for.
// U+00c5 = LATIN CAPITAL LETTER A WITH RING ABOVE
    string CapitalAWithRing = "\u00c5"; 

// Define a string to search. 
// The result of combining the characters LATIN SMALL LETTER A and COMBINING 
// RING ABOVE (U+0061, U+030a) is linguistically equivalent to the character 
// LATIN SMALL LETTER A WITH RING ABOVE (U+00e5).
    string cat = "A Cheshire c" + "\u0061\u030a" + "t";

    int loc = 0;
    StringComparison[] scValues = {
        StringComparison.CurrentCulture,
        StringComparison.CurrentCultureIgnoreCase,
        StringComparison.InvariantCulture,
        StringComparison.InvariantCultureIgnoreCase,
        StringComparison.Ordinal,
        StringComparison.OrdinalIgnoreCase };

// Clear the screen and display an introduction.
    Console.Clear();
    Console.WriteLine(intro);

// Display the current culture because culture affects the result. For example, 
// try this code example with the "sv-SE" (Swedish-Sweden) culture.

    Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
    Console.WriteLine("The current culture is \"{0}\" - {1}.", 
                       Thread.CurrentThread.CurrentCulture.Name,
                       Thread.CurrentThread.CurrentCulture.DisplayName);

// Display the string to search for and the string to search.
    Console.WriteLine("Search for the string \"{0}\" in the string \"{1}\"", 
                       CapitalAWithRing, cat);
    Console.WriteLine();

// Note that in each of the following searches, we look for 
// LATIN CAPITAL LETTER A WITH RING ABOVE in a string that contains 
// LATIN SMALL LETTER A WITH RING ABOVE. A result value of -1 indicates 
// the string was not found.
// Search using different values of StringComparison. Specify the start 
// index and count. 

    Console.WriteLine("Part 1: Start index and count are specified.");
    foreach (StringComparison sc in scValues)
        {
        loc = cat.IndexOf(CapitalAWithRing, 0, cat.Length, sc);
        Console.WriteLine(resultFmt, sc, loc);
        }

// Search using different values of StringComparison. Specify the 
// start index. 
    Console.WriteLine("\nPart 2: Start index is specified.");
    foreach (StringComparison sc in scValues)
        {
        loc = cat.IndexOf(CapitalAWithRing, 0, sc);
        Console.WriteLine(resultFmt, sc, loc);
        }

// Search using different values of StringComparison. 
    Console.WriteLine("\nPart 3: Neither start index nor count is specified.");
    foreach (StringComparison sc in scValues)
        {
        loc = cat.IndexOf(CapitalAWithRing, sc);
        Console.WriteLine(resultFmt, sc, loc);
        }
    }
}

/*
Note: This code example was executed on a console whose user interface 
culture is "en-US" (English-United States).

This code example produces the following results:

Find the first occurrence of a character using different values of StringComparison.
The current culture is "en-US" - English (United States).
Search for the string "Å" in the string "A Cheshire ca°t"

Part 1: Start index and count are specified.
Comparison: CurrentCulture               Location:  -1
Comparison: CurrentCultureIgnoreCase     Location:  12
Comparison: InvariantCulture             Location:  -1
Comparison: InvariantCultureIgnoreCase   Location:  12
Comparison: Ordinal                      Location:  -1
Comparison: OrdinalIgnoreCase            Location:  -1

Part 2: Start index is specified.
Comparison: CurrentCulture               Location:  -1
Comparison: CurrentCultureIgnoreCase     Location:  12
Comparison: InvariantCulture             Location:  -1
Comparison: InvariantCultureIgnoreCase   Location:  12
Comparison: Ordinal                      Location:  -1
Comparison: OrdinalIgnoreCase            Location:  -1

Part 3: Neither start index nor count is specified.
Comparison: CurrentCulture               Location:  -1
Comparison: CurrentCultureIgnoreCase     Location:  12
Comparison: InvariantCulture             Location:  -1
Comparison: InvariantCultureIgnoreCase   Location:  12
Comparison: Ordinal                      Location:  -1
Comparison: OrdinalIgnoreCase            Location:  -1

*/

Açıklamalar

Dizin numaralandırması 0'dan (sıfır) başlar. startIndex parametresi 0 ile dize örneğinin uzunluğu arasında değişebilir.

Arama -1'de startIndex başlar ve devam eder + startIndexcount. konumundaki startIndex + count karakter aramaya dahil değildir.

comparisonType parametresi, geçerli veya sabit kültürü kullanarak, büyük/küçük harfe duyarlı veya büyük/küçük harfe duyarlı olmayan bir arama kullanarak ve sözcük veya sıralı karşılaştırma kuralları kullanarak parametrenin aranmayı belirtirvalue.

Arayanlara Notlar

Karakter kümeleri, dilbilimsel veya kültüre duyarlı bir karşılaştırma yapılırken dikkate alınmayan karakterler olan yok sayılabilir karakterler içerir. Kültüre duyarlı bir aramada (veya değilse comparisonTypeOrdinalOrdinalIgnoreCase) value yoksayılabilir bir karakter içeriyorsa, sonuç bu karakter kaldırılmış olarak aramaya eşdeğerdir. Yalnızca bir veya daha fazla yoksayılabilir karakterden oluşuyorsa value , IndexOf(String, Int32, Int32, StringComparison) yöntem her zaman aramanın başladığı karakter konumu olan değerini döndürür startIndex.

Aşağıdaki örnekte yöntemi, IndexOf(String, Int32, Int32, StringComparison) iki dizedeki üçüncü ile altıncı karakter konumları arasında başlayan bir "m" ve ardından bir yumuşak kısa çizginin (U+00AD) konumunu bulmak için kullanılır. Dizelerin yalnızca birinde gereken alt dize var. Örnek .NET Framework 4 veya sonraki bir sürümde çalıştırılırsa, her iki durumda da yumuşak kısa çizgi yoksayılabilir bir karakter olduğundan, yöntem kültüre duyarlı bir karşılaştırma gerçekleştirdiğinde dizede "m" dizinini döndürür. Ancak sıralı bir karşılaştırma gerçekleştirdiğinde, alt dizeyi yalnızca ilk dizede bulur. Yumuşak kısa çizgi ve ardından bir "m" içeren ilk dize söz konusu olduğunda, yöntemin yumuşak kısa çizginin dizinini döndüremiyeceği, bunun yerine kültüre duyarlı bir karşılaştırma gerçekleştirdiğinde "m" dizini döndürdüğüne dikkat edin. Yöntem, yalnızca bir sıra karşılaştırma yapıldığında ilk dizede hece ayırma çizgisinin dizinini döndürür.

C#
using System;

public class Example
{
    public static void Main()
    {

        string searchString = "\u00ADm";
        string s1 = "ani\u00ADmal" ;
        string s2 = "animal";

        Console.WriteLine(s1.IndexOf(searchString, 2, 4, StringComparison.CurrentCulture));
        Console.WriteLine(s1.IndexOf(searchString, 2, 4, StringComparison.Ordinal));
        Console.WriteLine(s2.IndexOf(searchString, 2, 4, StringComparison.CurrentCulture));
        Console.WriteLine(s2.IndexOf(searchString, 2, 4, StringComparison.Ordinal));

        // The example displays the following output:
        //       4
        //       3
        //       3
        //       -1
    }
}

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

IndexOf(String, Int32, Int32)

Kaynak:
String.Searching.cs
Kaynak:
String.Searching.cs
Kaynak:
String.Searching.cs

Bu örnekte belirtilen dizenin ilk oluşumunun sıfır tabanlı dizinini raporlar. Arama belirtilen karakter konumunda başlar ve belirtilen sayıda karakter konumunu inceler.

C#
public int IndexOf (string value, int startIndex, int count);

Parametreler

value
String

Aranacak dize.

startIndex
Int32

Arama başlama konumu.

count
Int32

İncelenecek karakter konumlarının sayısı.

Döndürülenler

Dize bulunursa geçerli örneğin başlangıcından sıfır tabanlı dizin konumu value veya bulunamazsa -1. ise valueEmpty, dönüş değeri olur startIndex.

Özel durumlar

value, null değeridir.

count veya startIndex negatiftir.

-veya-

startIndex bu dizenin uzunluğundan büyük.

-veya-

count , bu dizenin uzunluğundan eksi startIndexdeğerinden büyük.

Örnekler

Aşağıdaki örnek, başka bir dizenin alt dizesi içinde "he" dizesinin tüm oluşumlarının dizinini bulur. Aranacak karakter sayısının her arama yinelemesi için yeniden hesaplanması gerektiğini unutmayın.

C#
string br1 = "0----+----1----+----2----+----3----+----4----+----5----+----6----+---";
string br2 = "012345678901234567890123456789012345678901234567890123456789012345678";
string str = "Now is the time for all good men to come to the aid of their country.";
int start;
int at;
int end;
int count;

end = str.Length;
start = end/2;
Console.WriteLine();
Console.WriteLine("All occurrences of 'he' from position {0} to {1}.", start, end-1);
Console.WriteLine("{1}{0}{2}{0}{3}{0}", Environment.NewLine, br1, br2, str);
Console.Write("The string 'he' occurs at position(s): ");

count = 0;
at = 0;
while((start <= end) && (at > -1))
{
    // start+count must be a position within -str-.
    count = end - start;
    at = str.IndexOf("he", start, count);
    if (at == -1) break;
    Console.Write("{0} ", at);
    start = at+1;
}
Console.WriteLine();

/*
This example produces the following results:

All occurrences of 'he' from position 34 to 68.
0----+----1----+----2----+----3----+----4----+----5----+----6----+---
012345678901234567890123456789012345678901234567890123456789012345678
Now is the time for all good men to come to the aid of their country.

The string 'he' occurs at position(s): 45 56

*/

Açıklamalar

Dizin numaralandırması 0'dan (sıfır) başlar. startIndex parametresi 0 ile dize örneğinin uzunluğu arasında değişebilir.

Bu yöntem, geçerli kültür kullanılarak bir sözcük (büyük/küçük harfe ve kültüre duyarlı) araması gerçekleştirir. Arama -1'de startIndex başlar ve devam eder + startIndexcount. konumundaki startIndex + count karakter aramaya dahil değildir.

Karakter kümeleri, dilbilimsel veya kültüre duyarlı bir karşılaştırma yapılırken dikkate alınmayan karakterler olan yok sayılabilir karakterler içerir. Kültüre duyarlı bir aramada, yoksayılabilir bir karakter içeriyorsa value , sonuç bu karakter kaldırılmış olarak aramaya eşdeğerdir. Yalnızca bir veya daha fazla yoksayılabilir karakterden oluşuyorsa value , IndexOf(String, Int32, Int32) yöntem her zaman aramanın başladığı karakter konumu olan değerini döndürür startIndex. Aşağıdaki örnekte yöntemi, IndexOf(String, Int32, Int32) iki dizedeki üçüncü ile altıncı karakter konumları arasında başlayan bir "m" ve ardından bir yumuşak kısa çizginin (U+00AD) konumunu bulmak için kullanılır. Dizelerin yalnızca birinde gereken alt dize var. Örnek .NET Framework 4 veya sonraki bir sürümde çalıştırılırsa, her iki durumda da yumuşak kısa çizgi yoksayılabilir bir karakter olduğundan, yöntem kültüre duyarlı bir karşılaştırma gerçekleştirdiğinde dizede "m" dizinini döndürür. Hece ayırma çizgisi ve ardından "m" harfinin geldiği ilk dize söz konusu olduğunda, yöntemin hece ayırma çizgisinin dizinini döndüremediğine ancak onun yerine "m" harfinin dizinini döndürdüğüne dikkat edin.

C#
using System;

public class Example
{
    public static void Main()
    {
        string searchString = "\u00ADm";
        string s1 = "ani\u00ADmal" ;
        string s2 = "animal";

        Console.WriteLine(s1.IndexOf(searchString, 2, 4));
        Console.WriteLine(s2.IndexOf(searchString, 2, 4));

        // The example displays the following output:
        //       4
        //       3
    }
}

Arayanlara Notlar

Dizeleri Kullanmak için En İyi Yöntemler bölümünde açıklandığı gibi, varsayılan değerlerin yerini alan dize karşılaştırma yöntemlerini çağırmaktan kaçınmanızı ve bunun yerine parametrelerin açıkça belirtilmesi gereken yöntemleri çağırmanızı öneririz. Bu işlemi gerçekleştirmek üzere geçerli kültürün karşılaştırma kurallarını kullanmak için, yöntemi aşırı yüklemesini parametresi için değeriyle CurrentCulture çağırarak IndexOf(String, Int32, Int32, StringComparison) amacınıza açıkça sinyal verincomparisonType. Dil algılayan karşılaştırmaya ihtiyacınız yoksa kullanmayı Ordinalgöz önünde bulundurun.

Ayrıca bkz.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

IndexOf(Char, Int32, Int32)

Kaynak:
String.Searching.cs
Kaynak:
String.Searching.cs
Kaynak:
String.Searching.cs

Bu örnekte belirtilen karakterin ilk oluşumunun sıfır tabanlı dizinini raporlar. Arama belirtilen karakter konumunda başlar ve belirtilen sayıda karakter konumunu inceler.

C#
public int IndexOf (char value, int startIndex, int count);

Parametreler

value
Char

Aranacak Unicode karakteri.

startIndex
Int32

Arama başlama konumu.

count
Int32

İncelenecek karakter konumlarının sayısı.

Döndürülenler

Karakter bulunursa dizenin başından sıfır tabanlı dizin konumu value veya bulunamazsa -1.

Özel durumlar

count veya startIndex negatiftir.

-veya-

startIndex bu dizenin uzunluğundan büyük.

-veya-

count , bu dizenin uzunluğundan eksi startIndexdeğerinden büyük.

Örnekler

Aşağıdaki örnekte yöntemi gösterilmektedir IndexOf .

C#
// Example for the String.IndexOf( char, int, int ) method.
using System;

class IndexOfCII 
{
    public static void Main() 
    {
        string br1 = 
            "0----+----1----+----2----+----3----+----" +
            "4----+----5----+----6----+----7";
        string br2 = 
            "0123456789012345678901234567890123456789" +
            "0123456789012345678901234567890";
        string str = 
            "ABCDEFGHI abcdefghi ABCDEFGHI abcdefghi " +
            "ABCDEFGHI abcdefghi ABCDEFGHI";

        Console.WriteLine( 
            "This example of String.IndexOf( char, int, int )\n" +
            "generates the following output." );
        Console.WriteLine( 
            "{0}{1}{0}{2}{0}{3}{0}", 
            Environment.NewLine, br1, br2, str );

        FindAllChar( 'A', str );
        FindAllChar( 'a', str );
        FindAllChar( 'I', str );
        FindAllChar( 'i', str );
        FindAllChar( '@', str );
        FindAllChar( ' ', str );
    }

    static void FindAllChar( Char target, String searched )
    {
        Console.Write( 
            "The character '{0}' occurs at position(s): ", 
            target );

        int     startIndex = -1;
        int     hitCount = 0;

        // Search for all occurrences of the target.
        while( true )
        {
            startIndex = searched.IndexOf( 
                target, startIndex + 1, 
                searched.Length - startIndex - 1 );

            // Exit the loop if the target is not found.
            if( startIndex < 0 )
                break;

            Console.Write( "{0}, ", startIndex );
            hitCount++;
        }

        Console.WriteLine( "occurrences: {0}", hitCount );
    }
}

/*
This example of String.IndexOf( char, int, int )
generates the following output.

0----+----1----+----2----+----3----+----4----+----5----+----6----+----7
01234567890123456789012345678901234567890123456789012345678901234567890
ABCDEFGHI abcdefghi ABCDEFGHI abcdefghi ABCDEFGHI abcdefghi ABCDEFGHI

The character 'A' occurs at position(s): 0, 20, 40, 60, occurrences: 4
The character 'a' occurs at position(s): 10, 30, 50, occurrences: 3
The character 'I' occurs at position(s): 8, 28, 48, 68, occurrences: 4
The character 'i' occurs at position(s): 18, 38, 58, occurrences: 3
The character '@' occurs at position(s): occurrences: 0
The character ' ' occurs at position(s): 9, 19, 29, 39, 49, 59, occurrences: 6
*/

Açıklamalar

Arama şu konumdan startIndex başlar ve -1'e startIndex + count devam eder. konumundaki startIndex + count karakter aramaya dahil değildir.

Dizin numaralandırması 0'dan (sıfır) başlar. startIndex parametresi 0 ile dize örneğinin uzunluğu arasında değişebilir.

Bu yöntem, yalnızca kendi Unicode skalar değerleri aynıysa, bir karakterin başka bir karaktere eşit kabul edildiği bir sıra (kültür duyarlı olmayan) araması gerçekleştirir. Kültüre duyarlı bir arama yapmak için yöntemini kullanın CompareInfo.IndexOf ; burada önceden derlenmiş bir karakteri temsil eden Unicode skaler değeri, örneğin "Æ" (U+00C6), karakterin bileşenlerinin kültüre bağlı olarak "AE" (U+0041, U+0045) gibi doğru dizideki herhangi bir oluşumuna eşdeğer olarak kabul edilebilir.

Ayrıca bkz.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

IndexOf(String, StringComparison)

Kaynak:
String.Searching.cs
Kaynak:
String.Searching.cs
Kaynak:
String.Searching.cs

Geçerli String nesnede belirtilen dizenin ilk oluşumunun sıfır tabanlı dizinini raporlar. Parametresi, belirtilen dize için kullanılacak arama türünü belirtir.

C#
public int IndexOf (string value, StringComparison comparisonType);

Parametreler

value
String

Aranacak dize.

comparisonType
StringComparison

Arama kurallarını belirten numaralandırma değerlerinden biri.

Döndürülenler

Bu dize bulunursa parametrenin value dizin konumu veya bulunamazsa -1. ise valueEmpty, dönüş değeri 0'dır.

Özel durumlar

value, null değeridir.

comparisonType geçerli StringComparison bir değer değil.

Örnekler

Aşağıdaki örnekte, numaralandırmanın farklı değerlerini kullanan bir dizenin IndexOf başka bir dize içindeki ilk oluşumunu bulan yönteminin StringComparison üç aşırı yüklemesi gösterilmektedir.

C#
// This code example demonstrates the 
// System.String.IndexOf(String, ..., StringComparison) methods.

using System;
using System.Threading;
using System.Globalization;

class Sample 
{
    public static void Main() 
    {
    string intro = "Find the first occurrence of a character using different " + 
                   "values of StringComparison.";
    string resultFmt = "Comparison: {0,-28} Location: {1,3}";

// Define a string to search for.
// U+00c5 = LATIN CAPITAL LETTER A WITH RING ABOVE
    string CapitalAWithRing = "\u00c5"; 

// Define a string to search. 
// The result of combining the characters LATIN SMALL LETTER A and COMBINING 
// RING ABOVE (U+0061, U+030a) is linguistically equivalent to the character 
// LATIN SMALL LETTER A WITH RING ABOVE (U+00e5).
    string cat = "A Cheshire c" + "\u0061\u030a" + "t";

    int loc = 0;
    StringComparison[] scValues = {
        StringComparison.CurrentCulture,
        StringComparison.CurrentCultureIgnoreCase,
        StringComparison.InvariantCulture,
        StringComparison.InvariantCultureIgnoreCase,
        StringComparison.Ordinal,
        StringComparison.OrdinalIgnoreCase };

// Clear the screen and display an introduction.
    Console.Clear();
    Console.WriteLine(intro);

// Display the current culture because culture affects the result. For example, 
// try this code example with the "sv-SE" (Swedish-Sweden) culture.

    Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
    Console.WriteLine("The current culture is \"{0}\" - {1}.", 
                       Thread.CurrentThread.CurrentCulture.Name,
                       Thread.CurrentThread.CurrentCulture.DisplayName);

// Display the string to search for and the string to search.
    Console.WriteLine("Search for the string \"{0}\" in the string \"{1}\"", 
                       CapitalAWithRing, cat);
    Console.WriteLine();

// Note that in each of the following searches, we look for 
// LATIN CAPITAL LETTER A WITH RING ABOVE in a string that contains 
// LATIN SMALL LETTER A WITH RING ABOVE. A result value of -1 indicates 
// the string was not found.
// Search using different values of StringComparison. Specify the start 
// index and count. 

    Console.WriteLine("Part 1: Start index and count are specified.");
    foreach (StringComparison sc in scValues)
        {
        loc = cat.IndexOf(CapitalAWithRing, 0, cat.Length, sc);
        Console.WriteLine(resultFmt, sc, loc);
        }

// Search using different values of StringComparison. Specify the 
// start index. 
    Console.WriteLine("\nPart 2: Start index is specified.");
    foreach (StringComparison sc in scValues)
        {
        loc = cat.IndexOf(CapitalAWithRing, 0, sc);
        Console.WriteLine(resultFmt, sc, loc);
        }

// Search using different values of StringComparison. 
    Console.WriteLine("\nPart 3: Neither start index nor count is specified.");
    foreach (StringComparison sc in scValues)
        {
        loc = cat.IndexOf(CapitalAWithRing, sc);
        Console.WriteLine(resultFmt, sc, loc);
        }
    }
}

/*
Note: This code example was executed on a console whose user interface 
culture is "en-US" (English-United States).

This code example produces the following results:

Find the first occurrence of a character using different values of StringComparison.
The current culture is "en-US" - English (United States).
Search for the string "Å" in the string "A Cheshire ca°t"

Part 1: Start index and count are specified.
Comparison: CurrentCulture               Location:  -1
Comparison: CurrentCultureIgnoreCase     Location:  12
Comparison: InvariantCulture             Location:  -1
Comparison: InvariantCultureIgnoreCase   Location:  12
Comparison: Ordinal                      Location:  -1
Comparison: OrdinalIgnoreCase            Location:  -1

Part 2: Start index is specified.
Comparison: CurrentCulture               Location:  -1
Comparison: CurrentCultureIgnoreCase     Location:  12
Comparison: InvariantCulture             Location:  -1
Comparison: InvariantCultureIgnoreCase   Location:  12
Comparison: Ordinal                      Location:  -1
Comparison: OrdinalIgnoreCase            Location:  -1

Part 3: Neither start index nor count is specified.
Comparison: CurrentCulture               Location:  -1
Comparison: CurrentCultureIgnoreCase     Location:  12
Comparison: InvariantCulture             Location:  -1
Comparison: InvariantCultureIgnoreCase   Location:  12
Comparison: Ordinal                      Location:  -1
Comparison: OrdinalIgnoreCase            Location:  -1

*/

Açıklamalar

Dizin numaralandırması sıfırdan başlar.

comparisonType parametresi, geçerli veya sabit kültürü kullanarak, büyük/küçük harfe duyarlı veya büyük/küçük harfe duyarlı olmayan bir arama kullanarak ve sözcük veya sıralı karşılaştırma kuralları kullanarak parametreyi aramayı value belirtir.

Arayanlara Notlar

Karakter kümeleri, dilbilimsel veya kültüre duyarlı bir karşılaştırma yapılırken dikkate alınmayan karakterler olan yok sayılabilir karakterler içerir. Kültüre duyarlı bir aramada (veya değilse comparisonTypeOrdinalOrdinalIgnoreCase) value yoksayılabilir bir karakter içeriyorsa, sonuç bu karakter kaldırılmış olarak aramaya eşdeğerdir. Yalnızca bir veya daha fazla yoksayılabilir karakterden oluşuyorsa value , eşleşmenin IndexOf(String, StringComparison) geçerli örneğin başında bulunduğunu belirtmek için yöntem her zaman 0 (sıfır) döndürür.

Aşağıdaki örnekte yöntemi, IndexOf(String, StringComparison) iki dizede üç alt dize (yumuşak kısa çizgi (U+00AD), ardından "n" ve ardından "m" gelen yumuşak kısa çizgi) bulmak için kullanılır. Dizelerin yalnızca birinde hece ayırma çizgisi var. Örnek .NET Framework 4 veya sonraki bir sürümde çalıştırılırsa, yumuşak kısa çizgi yoksayılabilir bir karakter olduğundan kültüre duyarlı arama, geçici kısa çizgi arama dizesine dahil edilmediği takdirde döndüreceği değeri döndürür. Ancak sıralı arama, bir dizedeki geçici kısa çizgiyi başarılı bir şekilde bulur ve ikinci dizede bulunmadığını bildirir.

C#
using System;

public class Example
{
    public static void Main()
    {
        string s1 = "ani\u00ADmal";
        string s2 = "animal";
      
        Console.WriteLine("Culture-sensitive comparison:");
        // Use culture-sensitive comparison to find the soft hyphen.
        Console.WriteLine(s1.IndexOf("\u00AD", StringComparison.CurrentCulture));
        Console.WriteLine(s2.IndexOf("\u00AD", StringComparison.CurrentCulture));
      
        // Use culture-sensitive comparison to find the soft hyphen followed by "n".
        Console.WriteLine(s1.IndexOf("\u00ADn", StringComparison.CurrentCulture));
        Console.WriteLine(s2.IndexOf("\u00ADn", StringComparison.CurrentCulture));
      
        // Use culture-sensitive comparison to find the soft hyphen followed by "m".
        Console.WriteLine(s1.IndexOf("\u00ADm", StringComparison.CurrentCulture));
        Console.WriteLine(s2.IndexOf("\u00ADm", StringComparison.CurrentCulture));
      
        Console.WriteLine("Ordinal comparison:");
        // Use ordinal comparison to find the soft hyphen.
        Console.WriteLine(s1.IndexOf("\u00AD", StringComparison.Ordinal));
        Console.WriteLine(s2.IndexOf("\u00AD", StringComparison.Ordinal));
      
        // Use ordinal comparison to find the soft hyphen followed by "n".
        Console.WriteLine(s1.IndexOf("\u00ADn", StringComparison.Ordinal));
        Console.WriteLine(s2.IndexOf("\u00ADn", StringComparison.Ordinal));
      
        // Use ordinal comparison to find the soft hyphen followed by "m".
        Console.WriteLine(s1.IndexOf("\u00ADm", StringComparison.Ordinal));
        Console.WriteLine(s2.IndexOf("\u00ADm", StringComparison.Ordinal));

        // The example displays the following output:
        //       Culture-sensitive comparison:
        //       0
        //       0
        //       1
        //       1
        //       4
        //       3
        //       Ordinal comparison:
        //       3
        //       -1
        //       -1
        //       -1
        //       3
        //       -1
    }
}

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

IndexOf(String, Int32, StringComparison)

Kaynak:
String.Searching.cs
Kaynak:
String.Searching.cs
Kaynak:
String.Searching.cs

Geçerli String nesnede belirtilen dizenin ilk oluşumunun sıfır tabanlı dizinini raporlar. Parametreler geçerli dizedeki başlangıç arama konumunu ve belirtilen dize için kullanılacak arama türünü belirtir.

C#
public int IndexOf (string value, int startIndex, StringComparison comparisonType);

Parametreler

value
String

Aranacak dize.

startIndex
Int32

Arama başlama konumu.

comparisonType
StringComparison

Arama kurallarını belirten numaralandırma değerlerinden biri.

Döndürülenler

Bu dize bulunursa geçerli örneğin başlangıcından value parametrenin sıfır tabanlı dizin konumu veya bulunamazsa -1. ise valueEmpty, dönüş değeri olur startIndex.

Özel durumlar

value, null değeridir.

startIndex 0'dan küçük (sıfır) veya bu dizenin uzunluğundan büyük.

comparisonType geçerli StringComparison bir değer değil.

Örnekler

Aşağıdaki örnekte, numaralandırmanın farklı değerlerini kullanan bir dizenin IndexOf başka bir dize içindeki ilk oluşumunu bulan yönteminin StringComparison üç aşırı yüklemesi gösterilmektedir.

C#
// This code example demonstrates the 
// System.String.IndexOf(String, ..., StringComparison) methods.

using System;
using System.Threading;
using System.Globalization;

class Sample 
{
    public static void Main() 
    {
    string intro = "Find the first occurrence of a character using different " + 
                   "values of StringComparison.";
    string resultFmt = "Comparison: {0,-28} Location: {1,3}";

// Define a string to search for.
// U+00c5 = LATIN CAPITAL LETTER A WITH RING ABOVE
    string CapitalAWithRing = "\u00c5"; 

// Define a string to search. 
// The result of combining the characters LATIN SMALL LETTER A and COMBINING 
// RING ABOVE (U+0061, U+030a) is linguistically equivalent to the character 
// LATIN SMALL LETTER A WITH RING ABOVE (U+00e5).
    string cat = "A Cheshire c" + "\u0061\u030a" + "t";

    int loc = 0;
    StringComparison[] scValues = {
        StringComparison.CurrentCulture,
        StringComparison.CurrentCultureIgnoreCase,
        StringComparison.InvariantCulture,
        StringComparison.InvariantCultureIgnoreCase,
        StringComparison.Ordinal,
        StringComparison.OrdinalIgnoreCase };

// Clear the screen and display an introduction.
    Console.Clear();
    Console.WriteLine(intro);

// Display the current culture because culture affects the result. For example, 
// try this code example with the "sv-SE" (Swedish-Sweden) culture.

    Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
    Console.WriteLine("The current culture is \"{0}\" - {1}.", 
                       Thread.CurrentThread.CurrentCulture.Name,
                       Thread.CurrentThread.CurrentCulture.DisplayName);

// Display the string to search for and the string to search.
    Console.WriteLine("Search for the string \"{0}\" in the string \"{1}\"", 
                       CapitalAWithRing, cat);
    Console.WriteLine();

// Note that in each of the following searches, we look for 
// LATIN CAPITAL LETTER A WITH RING ABOVE in a string that contains 
// LATIN SMALL LETTER A WITH RING ABOVE. A result value of -1 indicates 
// the string was not found.
// Search using different values of StringComparison. Specify the start 
// index and count. 

    Console.WriteLine("Part 1: Start index and count are specified.");
    foreach (StringComparison sc in scValues)
        {
        loc = cat.IndexOf(CapitalAWithRing, 0, cat.Length, sc);
        Console.WriteLine(resultFmt, sc, loc);
        }

// Search using different values of StringComparison. Specify the 
// start index. 
    Console.WriteLine("\nPart 2: Start index is specified.");
    foreach (StringComparison sc in scValues)
        {
        loc = cat.IndexOf(CapitalAWithRing, 0, sc);
        Console.WriteLine(resultFmt, sc, loc);
        }

// Search using different values of StringComparison. 
    Console.WriteLine("\nPart 3: Neither start index nor count is specified.");
    foreach (StringComparison sc in scValues)
        {
        loc = cat.IndexOf(CapitalAWithRing, sc);
        Console.WriteLine(resultFmt, sc, loc);
        }
    }
}

/*
Note: This code example was executed on a console whose user interface 
culture is "en-US" (English-United States).

This code example produces the following results:

Find the first occurrence of a character using different values of StringComparison.
The current culture is "en-US" - English (United States).
Search for the string "Å" in the string "A Cheshire ca°t"

Part 1: Start index and count are specified.
Comparison: CurrentCulture               Location:  -1
Comparison: CurrentCultureIgnoreCase     Location:  12
Comparison: InvariantCulture             Location:  -1
Comparison: InvariantCultureIgnoreCase   Location:  12
Comparison: Ordinal                      Location:  -1
Comparison: OrdinalIgnoreCase            Location:  -1

Part 2: Start index is specified.
Comparison: CurrentCulture               Location:  -1
Comparison: CurrentCultureIgnoreCase     Location:  12
Comparison: InvariantCulture             Location:  -1
Comparison: InvariantCultureIgnoreCase   Location:  12
Comparison: Ordinal                      Location:  -1
Comparison: OrdinalIgnoreCase            Location:  -1

Part 3: Neither start index nor count is specified.
Comparison: CurrentCulture               Location:  -1
Comparison: CurrentCultureIgnoreCase     Location:  12
Comparison: InvariantCulture             Location:  -1
Comparison: InvariantCultureIgnoreCase   Location:  12
Comparison: Ordinal                      Location:  -1
Comparison: OrdinalIgnoreCase            Location:  -1

*/

Açıklamalar

Dizin numaralandırması 0'dan başlar. startIndex parametresi 0 ile dize örneğinin uzunluğu arasında değişebilir. Dize örneğinin uzunluğuna eşitse startIndex , yöntemi -1 döndürür.

comparisonType parametresi, geçerli veya sabit kültürü kullanarak, büyük/küçük harfe duyarlı veya büyük/küçük harfe duyarlı olmayan bir arama kullanarak ve sözcük veya sıralı karşılaştırma kuralları kullanarak parametreyi aramayı value belirtir.

Arayanlara Notlar

Karakter kümeleri, dilbilimsel veya kültüre duyarlı bir karşılaştırma yapılırken dikkate alınmayan karakterler olan yok sayılabilir karakterler içerir. Kültüre duyarlı bir aramada (veya değilse comparisonTypeOrdinalOrdinalIgnoreCase) value yoksayılabilir bir karakter içeriyorsa, sonuç bu karakter kaldırılmış olarak aramaya eşdeğerdir. Yalnızca bir veya daha fazla yoksayılabilir karakterden oluşuyorsa value , IndexOf(String, Int32, StringComparison) yöntem her zaman aramanın başladığı karakter konumu olan değerini döndürür startIndex.

Aşağıdaki örnekte yöntemi, iki dizedeki IndexOf(String, Int32, StringComparison) üçüncü karakter konumundan başlayarak bir yumuşak kısa çizginin (U+00AD) ve ardından "m" karakterinin konumunu bulmak için kullanılır. Dizelerin yalnızca birinde gereken alt dize var. Örnek .NET Framework 4 veya sonraki bir sürümde çalıştırılırsa, her iki durumda da, yumuşak kısa çizgi yoksayılabilir bir karakter olduğundan, yöntem kültüre duyarlı bir karşılaştırma gerçekleştirdiğinde dizede "m" dizinini döndürür. Hece ayırma çizgisi ve ardından "m" harfinin geldiği ilk dize söz konusu olduğunda, yöntemin hece ayırma çizgisinin dizinini döndüremediğine ancak onun yerine "m" harfinin dizinini döndürdüğüne dikkat edin. Yöntem, yalnızca bir sıra karşılaştırma yapıldığında ilk dizede hece ayırma çizgisinin dizinini döndürür.

C#
using System;

public class Example
{
    public static void Main()
    {
      
        string searchString = "\u00ADm";
        string s1 = "ani\u00ADmal" ;
        string s2 = "animal";

        Console.WriteLine(s1.IndexOf(searchString, 2, StringComparison.CurrentCulture));
        Console.WriteLine(s1.IndexOf(searchString, 2, StringComparison.Ordinal));
        Console.WriteLine(s2.IndexOf(searchString, 2, StringComparison.CurrentCulture));
        Console.WriteLine(s2.IndexOf(searchString, 2, StringComparison.Ordinal));

        // The example displays the following output:
        //       4
        //       3
        //       3
        //       -1
    }
}

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

IndexOf(Char, StringComparison)

Kaynak:
String.Searching.cs
Kaynak:
String.Searching.cs
Kaynak:
String.Searching.cs

Bu dizede belirtilen Unicode karakterinin ilk oluşumunun sıfır tabanlı dizinini raporlar. Parametresi, belirtilen karakter için kullanılacak arama türünü belirtir.

C#
public int IndexOf (char value, StringComparison comparisonType);

Parametreler

value
Char

Aranacak karakter.

comparisonType
StringComparison

Arama kurallarını belirten bir numaralandırma değeri.

Döndürülenler

Bu karakter bulunursa sıfır tabanlı dizini value veya bulunamazsa -1.

Özel durumlar

comparisonType geçerli StringComparison bir değer değil.

Açıklamalar

Dizin numaralandırması sıfırdan başlar.

comparisonType parametresi, bağımsız değişken aramasının value geçerli veya sabit kültürü kullanıp kullanmadığını, büyük/küçük harfe duyarlı veya büyük/küçük harfe duyarlı olmadığını ya da sözcük veya sıralı karşılaştırma kuralları kullanıp kullanmadığını belirten bir StringComparison numaralandırma üyesidir.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Standard 2.1

IndexOf(Char, Int32)

Kaynak:
String.Searching.cs
Kaynak:
String.Searching.cs
Kaynak:
String.Searching.cs

Bu dizede belirtilen Unicode karakterinin ilk oluşumunun sıfır tabanlı dizinini raporlar. Arama belirtilen karakter konumunda başlar.

C#
public int IndexOf (char value, int startIndex);

Parametreler

value
Char

Aranacak Unicode karakteri.

startIndex
Int32

Arama başlama konumu.

Döndürülenler

Karakter bulunursa dizenin başından sıfır tabanlı dizin konumu value veya bulunamazsa -1.

Özel durumlar

startIndex 0'dan küçük (sıfır) veya dizenin uzunluğundan büyük.

Örnekler

Aşağıdaki örnekte yöntemi gösterilmektedir IndexOf .

C#
string br1 = "0----+----1----+----2----+----3----+----4----+----5----+----6----+---";
string br2 = "012345678901234567890123456789012345678901234567890123456789012345678";
string str = "Now is the time for all good men to come to the aid of their country.";
int start;
int at;

Console.WriteLine();
Console.WriteLine("All occurrences of 't' from position 0 to {0}.", str.Length-1);
Console.WriteLine("{1}{0}{2}{0}{3}{0}", Environment.NewLine, br1, br2, str);
Console.Write("The letter 't' occurs at position(s): ");

at = 0;
start = 0;
while((start < str.Length) && (at > -1))
{
    at = str.IndexOf('t', start);
    if (at == -1) break;
    Console.Write("{0} ", at);
    start = at+1;
}
Console.WriteLine();

/*
This example produces the following results:

All occurrences of 't' from position 0 to 68.
0----+----1----+----2----+----3----+----4----+----5----+----6----+---
012345678901234567890123456789012345678901234567890123456789012345678
Now is the time for all good men to come to the aid of their country.

The letter 't' occurs at position(s): 7 11 33 41 44 55 65

*/

Açıklamalar

Dizin numaralandırması 0'dan başlar. startIndex parametresi 0 ile dize örneğinin uzunluğu arasında değişebilir. Dize örneğinin uzunluğuna eşitse startIndex , yöntemi -1 döndürür.

Arama, dizenin sonuna kadar değişir startIndex .

Bu yöntem, yalnızca kendi Unicode skalar değerleri aynıysa, bir karakterin başka bir karaktere eşit kabul edildiği bir sıra (kültür duyarlı olmayan) araması gerçekleştirir. Kültüre duyarlı bir arama yapmak için yöntemini kullanın CompareInfo.IndexOf ; burada önceden derlenmiş bir karakteri temsil eden Unicode skaler değeri, örneğin "Æ" (U+00C6), karakterin bileşenlerinin kültüre bağlı olarak "AE" (U+0041, U+0045) gibi doğru dizideki herhangi bir oluşumuna eşdeğer olarak kabul edilebilir.

Ayrıca bkz.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

IndexOf(String)

Kaynak:
String.Searching.cs
Kaynak:
String.Searching.cs
Kaynak:
String.Searching.cs

Bu örnekte belirtilen dizenin ilk oluşumunun sıfır tabanlı dizinini raporlar.

C#
public int IndexOf (string value);

Parametreler

value
String

Aranacak dize.

Döndürülenler

Dize bulunursa sıfır tabanlı dizin konumu value veya bulunamazsa -1. ise valueEmpty, dönüş değeri 0'dır.

Özel durumlar

value, null değeridir.

Örnekler

Aşağıdaki örnekte "hayvan" içinde "n" aranmaktadır. Dize dizinleri bir yerine sıfırdan başladığından IndexOf(String) , yöntemi "n" değerinin 1 konumunda olduğunu gösterir.

C#
String str = "animal";
String toFind = "n";
int index = str.IndexOf("n");
Console.WriteLine("Found '{0}' in '{1}' at position {2}",
                toFind, str, index);

// The example displays the following output:
//        Found 'n' in 'animal' at position 1

Aşağıdaki örnek, bir cümledeki IndexOf hayvan adının başlangıç konumunu belirlemek için yöntemini kullanır. Ardından bu konumu kullanarak cümleye hayvanı tanımlayan bir sıfat ekler.

C#
using System;

public class Example {
    public static void Main()
    {
        string animal1 = "fox";
        string animal2 = "dog";

        string strTarget = String.Format("The {0} jumps over the {1}.",
                                         animal1, animal2);

        Console.WriteLine("The original string is:{0}{1}{0}",
                          Environment.NewLine, strTarget);

        Console.Write("Enter an adjective (or group of adjectives) " +
                      "to describe the {0}: ==> ", animal1);
        string adj1 = Console.ReadLine();

        Console.Write("Enter an adjective (or group of adjectives) " +
                      "to describe the {0}: ==> ", animal2);
        string adj2 = Console.ReadLine();

        adj1 = adj1.Trim() + " ";
        adj2 = adj2.Trim() + " ";

        strTarget = strTarget.Insert(strTarget.IndexOf(animal1), adj1);
        strTarget = strTarget.Insert(strTarget.IndexOf(animal2), adj2);

        Console.WriteLine("{0}The final string is:{0}{1}",
                          Environment.NewLine, strTarget);
    }
}
// Output from the example might appear as follows:
//       The original string is:
//       The fox jumps over the dog.
//
//       Enter an adjective (or group of adjectives) to describe the fox: ==> bold
//       Enter an adjective (or group of adjectives) to describe the dog: ==> lazy
//
//       The final string is:
//       The bold fox jumps over the lazy dog.

Açıklamalar

Dizin numaralandırması sıfırdan başlar.

Bu yöntem, geçerli kültür kullanılarak bir sözcük (büyük/küçük harfe ve kültüre duyarlı) araması gerçekleştirir. Arama bu örneğin ilk karakter konumunda başlar ve son karakter konumuna kadar devam eder.

Karakter kümeleri, dilbilimsel veya kültüre duyarlı bir karşılaştırma yapılırken dikkate alınmayan karakterler olan yok sayılabilir karakterler içerir. Kültüre duyarlı bir aramada, value yoksayılabilir bir karakter içeriyorsa sonuç, bu karakter kaldırılmış olarak aramaya eşdeğerdir. Yalnızca bir veya daha fazla yoksayılabilir karakterden oluşuyorsa value , eşleşmenin IndexOf(String) geçerli örneğin başında bulunduğunu belirtmek için yöntem her zaman 0 (sıfır) döndürür. Aşağıdaki örnekte yöntemi, IndexOf(String) iki dizede üç alt dize (yumuşak kısa çizgi (U+00AD), ardından "n" ve ardından "m" gelen yumuşak kısa çizgi) bulmak için kullanılır. Dizelerin yalnızca birinde hece ayırma çizgisi var. Örnek, .NET Framework 4 veya sonraki bir sürümde çalıştırılırsa, her durumda, yumuşak kısa çizgi yoksayılabilir bir karakter olduğundan, sonuç, yumuşak kısa çizginin içinde valueyer almamasıyla aynıdır. Yalnızca geçici kısa çizgi ararken, yöntem dizenin başında bir eşleşme bulduğunu belirtmek için 0 (sıfır) döndürür.

C#
using System;

public class Example
{
    public static void Main()
    {
        string s1 = "ani\u00ADmal";
        string s2 = "animal";
      
        // Find the index of the soft hyphen.
        Console.WriteLine(s1.IndexOf("\u00AD"));
        Console.WriteLine(s2.IndexOf("\u00AD"));
      
        // Find the index of the soft hyphen followed by "n".
        Console.WriteLine(s1.IndexOf("\u00ADn"));
        Console.WriteLine(s2.IndexOf("\u00ADn"));
      
        // Find the index of the soft hyphen followed by "m".
        Console.WriteLine(s1.IndexOf("\u00ADm"));
        Console.WriteLine(s2.IndexOf("\u00ADm"));

        // The example displays the following output
        // if run under the .NET Framework 4 or later:
        //       0
        //       0
        //       1
        //       1
        //       4
        //       3
    }
}

Arayanlara Notlar

Dizeleri Kullanmak için En İyi Yöntemler bölümünde açıklandığı gibi, varsayılan değerlerin yerini alan dize karşılaştırma yöntemlerini çağırmaktan kaçınmanızı ve bunun yerine parametrelerin açıkça belirtilmesi gereken yöntemleri çağırmanızı öneririz. Geçerli kültürün karşılaştırma kurallarını kullanarak bir dize örneği içindeki bir alt dizenin ilk dizinini bulmak için, parametresi için değeriyle CurrentCulture yöntem aşırı yüklemesini comparisonType çağırarak IndexOf(String, StringComparison) amacınızı açıkça belirtin. Dil algılayan karşılaştırmaya ihtiyacınız yoksa kullanmayı Ordinalgöz önünde bulundurun.

Ayrıca bkz.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

IndexOf(Char)

Kaynak:
String.Searching.cs
Kaynak:
String.Searching.cs
Kaynak:
String.Searching.cs

Bu dizede belirtilen Unicode karakterinin ilk oluşumunun sıfır tabanlı dizinini bildirir.

C#
public int IndexOf (char value);

Parametreler

value
Char

Aranacak Unicode karakteri.

Döndürülenler

Bu karakter bulunursa sıfır tabanlı dizin konumu value veya bulunamazsa -1.

Örnekler

Aşağıdaki örnek, yöntemini kullanarak bir String karakteri nasıl arayabileceğinizi IndexOf gösterir.

C#
// Create a Unicode string with 5 Greek Alpha characters.
String szGreekAlpha = new String('\u0391',5);

// Create a Unicode string with 3 Greek Omega characters.
String szGreekOmega = "\u03A9\u03A9\u03A9";

String szGreekLetters = String.Concat(szGreekOmega, szGreekAlpha, 
                                    szGreekOmega.Clone());

// Display the entire string.
Console.WriteLine("The string: {0}", szGreekLetters);

// The first index of Alpha.
int ialpha = szGreekLetters.IndexOf('\u0391');
// The first index of Omega.
int iomega = szGreekLetters.IndexOf('\u03A9');

Console.WriteLine("First occurrence of the Greek letter Alpha: Index {0}", 
                ialpha);
Console.WriteLine("First occurrence of the Greek letter Omega: Index {0}", 
                iomega);

// The example displays the following output:
//    The string: ΩΩΩΑΑΑΑΑΩΩΩ
//    First occurrence of the Greek letter Alpha: Index 3
//    First occurrence of the Greek letter Omega: Index 0

Açıklamalar

Dizin numaralandırması sıfırdan başlar.

Bu yöntem, yalnızca kendi Unicode skalar değerleri aynıysa, bir karakterin başka bir karaktere eşit kabul edildiği bir sıra (kültür duyarlı olmayan) araması gerçekleştirir. Kültüre duyarlı bir arama yapmak için yöntemini kullanın CompareInfo.IndexOf . Burada önceden derlenmiş bir karakteri temsil eden Unicode skaler değeri , örneğin ligatür "Æ" (U+00C6), karakterin bileşenlerinin kültüre bağlı olarak "AE" (U+0041, U+0045) gibi doğru dizideki herhangi bir örneğine eşdeğer olarak kabul edilebilir.

Ayrıca bkz.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

IndexOf(String, Int32)

Kaynak:
String.Searching.cs
Kaynak:
String.Searching.cs
Kaynak:
String.Searching.cs

Bu örnekte belirtilen dizenin ilk oluşumunun sıfır tabanlı dizinini raporlar. Arama belirtilen karakter konumunda başlar.

C#
public int IndexOf (string value, int startIndex);

Parametreler

value
String

Aranacak dize.

startIndex
Int32

Arama başlama konumu.

Döndürülenler

Dize bulunursa geçerli örneğin başlangıcından sıfır tabanlı dizin konumu value veya bulunamazsa -1. ise valueEmpty, dönüş değeri olur startIndex.

Özel durumlar

value, null değeridir.

startIndex 0'dan küçük (sıfır) veya bu dizenin uzunluğundan büyük.

Örnekler

Aşağıdaki örnek, bir hedef dize içinde belirtilen dizenin tüm oluşumlarını arar.

C#
using System;

public class IndexOfTest {
    public static void Main() {

        string strSource = "This is the string which we will perform the search on";

        Console.WriteLine("The search string is:{0}\"{1}\"{0}", Environment.NewLine, strSource);

        string strTarget = "";
        int found = 0;
        int totFinds = 0;

        do {
            Console.Write("Please enter a search value to look for in the above string (hit Enter to exit) ==> ");

            strTarget = Console.ReadLine();

            if (strTarget != "") {

                for (int i = 0; i < strSource.Length; i++) {

                    found = strSource.IndexOf(strTarget, i);

                    if (found >= 0) {
                        totFinds++;
                        i = found;
                    }
                    else
                    {
                        break;
                    }
                }
            }
            else
            {
                return;
            }

            Console.WriteLine("{0}The search parameter '{1}' was found {2} times.{0}",
                    Environment.NewLine, strTarget, totFinds);

            totFinds = 0;
        } while ( true );
    }
}

Açıklamalar

Dizin numaralandırması 0'dan başlar. startIndex parametresi 0 ile dize örneğinin uzunluğu arasında değişebilir. Dize örneğinin uzunluğuna eşitse startIndex , yöntemi -1 döndürür.

Bu yöntem, geçerli kültür kullanılarak bir sözcük (büyük/küçük harfe ve kültüre duyarlı) araması gerçekleştirir. Arama bu örneğin karakter konumunda başlar startIndex ve son karakter konumuna kadar devam eder.

Karakter kümeleri, dilbilimsel veya kültüre duyarlı bir karşılaştırma yapılırken dikkate alınmayan karakterler olan yok sayılabilir karakterler içerir. Kültüre duyarlı bir aramada, yoksayılabilir bir karakter içeriyorsa value , sonuç bu karakter kaldırılmış olarak aramaya eşdeğerdir. Yalnızca bir veya daha fazla yoksayılabilir karakterden oluşuyorsa value , IndexOf(String, Int32) yöntem her zaman aramanın başladığı karakter konumu olan değerini döndürür startIndex. Aşağıdaki örnekte yöntemi, IndexOf(String, Int32) iki dizede bir "m" ve ardından bir yumuşak kısa çizginin (U+00AD) konumunu bulmak için kullanılır. Dizelerin yalnızca birinde gereken alt dize var. Örnek .NET Framework 4 veya sonraki bir sürümde çalıştırılırsa, her iki durumda da yumuşak kısa çizgi yoksayılabilir bir karakter olduğundan, yöntem dizede "m" dizinini döndürür. Hece ayırma çizgisi ve ardından "m" harfinin geldiği ilk dize söz konusu olduğunda, yöntemin hece ayırma çizgisinin dizinini döndüremediğine ancak onun yerine "m" harfinin dizinini döndürdüğüne dikkat edin.

C#
using System;

public class Example
{
    public static void Main()
    {
        string searchString = "\u00ADm";
        string s1 = "ani\u00ADmal" ;
        string s2 = "animal";

        Console.WriteLine(s1.IndexOf(searchString, 2));
        Console.WriteLine(s2.IndexOf(searchString, 2));

        // The example displays the following output:
        //       4
        //       3
    }
}

Arayanlara Notlar

Dizeleri Kullanmak için En İyi Yöntemler bölümünde açıklandığı gibi, varsayılan değerlerin yerini alan dize karşılaştırma yöntemlerini çağırmaktan kaçınmanızı ve bunun yerine parametrelerin açıkça belirtilmesi gereken yöntemleri çağırmanızı öneririz. Geçerli kültürün karşılaştırma kurallarını kullanarak belirli bir karakter konumundan sonra oluşan bir alt dizenin ilk dizinini bulmak için, parametresi için değeriyle CurrentCulture yöntem aşırı yüklemesini çağırarak IndexOf(String, Int32, StringComparison) amacınıza açıkça işaret verincomparisonType. Dil algılayan karşılaştırmaya ihtiyacınız yoksa kullanmayı Ordinalgöz önünde bulundurun.

Ayrıca bkz.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0