İngilizce dilinde oku

Aracılığıyla paylaş


String.LastIndexOf Yöntem

Tanım

Bu örnekte belirtilen Unicode karakterinin veya dizesinin son oluşumunun sıfır tabanlı dizin konumunu bildirir. Bu örnekte karakter veya dize bulunamazsa yöntemi -1 döndürür.

Aşırı Yüklemeler

LastIndexOf(String, Int32, Int32, StringComparison)

Bu örnekte belirtilen dizenin son oluşumunun sıfır tabanlı dizin konumunu bildirir. Arama belirtilen karakter konumunda başlar ve belirtilen karakter konumu sayısı için dizenin başına doğru geriye doğru ilerler. Parametre, belirtilen dizeyi ararken gerçekleştirilecek karşılaştırma türünü belirtir.

LastIndexOf(String, Int32, Int32)

Bu örnekte belirtilen dizenin son oluşumunun sıfır tabanlı dizin konumunu bildirir. Arama belirtilen karakter konumunda başlar ve belirtilen sayıda karakter konumu için dizenin başına doğru geriye doğru ilerler.

LastIndexOf(Char, Int32, Int32)

Bu örnekteki bir alt dizede belirtilen Unicode karakterinin son oluşumunun sıfır tabanlı dizin konumunu bildirir. Arama belirtilen karakter konumunda başlar ve belirtilen sayıda karakter konumu için dizenin başına doğru geriye doğru ilerler.

LastIndexOf(String, StringComparison)

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

LastIndexOf(String, Int32, StringComparison)

Geçerli String nesnesi içinde belirtilen dizenin son oluşumunun sıfır tabanlı dizinini raporlar. Arama belirtilen karakter konumunda başlar ve dizenin başına doğru geriye doğru ilerler. Parametre, belirtilen dizeyi ararken gerçekleştirilecek karşılaştırma türünü belirtir.

LastIndexOf(Char, Int32)

Bu örnekte belirtilen Unicode karakterinin son oluşumunun sıfır tabanlı dizin konumunu bildirir. Arama belirtilen karakter konumunda başlar ve dizenin başına doğru geriye doğru ilerler.

LastIndexOf(String)

Bu örnekte belirtilen dizenin son oluşumunun sıfır tabanlı dizin konumunu bildirir.

LastIndexOf(Char)

Bu örnekte belirtilen Unicode karakterinin son oluşumunun sıfır tabanlı dizin konumunu bildirir.

LastIndexOf(String, Int32)

Bu örnekte belirtilen dizenin son oluşumunun sıfır tabanlı dizin konumunu bildirir. Arama belirtilen karakter konumunda başlar ve dizenin başına doğru geriye doğru ilerler.

LastIndexOf(String, Int32, Int32, StringComparison)

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

Bu örnekte belirtilen dizenin son oluşumunun sıfır tabanlı dizin konumunu bildirir. Arama belirtilen karakter konumunda başlar ve belirtilen karakter konumu sayısı için dizenin başına doğru geriye doğru ilerler. Parametre, belirtilen dizeyi ararken gerçekleştirilecek karşılaştırma türünü belirtir.

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

Parametreler

value
String

Aranacak dize.

startIndex
Int32

Arama başlangıç konumu. Arama, startIndex bu örneğin başına doğru ilerler.

count
Int32

İncelenmesi gereken karakter konumlarının sayısı.

comparisonType
StringComparison

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

Döndürülenler

Dize bulunursa value parametresinin sıfır tabanlı başlangıç dizini konumu veya bulunamazsa veya geçerli örnek Emptyeşitse -1.

Özel durumlar

value null.

count negatif.

-veya-

Geçerli örnek Emptyeşit değildir ve startIndex negatiftir.

-veya-

Geçerli örnek Emptyeşit değildir ve startIndex bu örneğin uzunluğundan büyüktür.

-veya-

Geçerli örnek Emptyeşit değildir ve startIndex + 1 - count bu örnekte olmayan bir konum belirtir.

-veya-

Geçerli örnek Empty eşit ve startIndex -1'den küçük veya sıfırdan büyük.

-veya-

Geçerli örnek Empty eşit ve count 1'den büyük.

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

Örnekler

Aşağıdaki örnekte, StringComparison numaralandırmasının farklı değerlerini kullanarak bir dizenin başka bir dizedeki son oluşumunu bulan LastIndexOf yönteminin üç aşırı yüklemesi gösterilmektedir.

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

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

class Sample 
{
    public static void Main() 
    {
    string intro = "Find the last 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 StringComparsion. Specify the start 
// index and count. 

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

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

// Search using different values of StringComparsion. 
    Console.WriteLine("\nPart 3: Neither start index nor count is specified.");
    foreach (StringComparison sc in scValues)
        {
        loc = cat.LastIndexOf(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 last 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ırma sıfırdan başlar. Başka bir ifadeyle, dizedeki ilk karakter sıfır dizininde, son karakter ise Length - 1'dedir.

Arama startIndex karakter konumunda başlar ve value bulunana veya count karakter konumları incelenene kadar geriye doğru ilerler. Örneğin, startIndexLength - 1 ise, yöntem dizedeki son karakterden geriye count karakterler arar.

comparisonType parametresi, kullanarak value parametresinin aranacak olduğunu belirtir:

  • Geçerli veya sabit kültür.
  • Büyük/küçük harfe duyarlı veya büyük/küçük harfe duyarlı olmayan bir arama.
  • Sözcük veya sıralı karşılaştırma kuralları.

Arayanlara Notlar

Karakter kümeleri, dilsel veya kültüre duyarlı karşılaştırma yapılırken dikkate alınmayan karakterler olan yoksayılabilir karakterler içerir. Kültüre duyarlı bir aramada (comparisonTypeOrdinal veya OrdinalIgnoreCasedeğilse), value yoksayılabilir bir karakter içeriyorsa, sonuç bu karakter kaldırılmış olarak aramaya eşdeğerdir.

Aşağıdaki örnekte, LastIndexOf(String, Int32, Int32, StringComparison) yöntemi, iki dizedeki son "m" işaretinden önceki ilk karakter konumu dışında, bir yumuşak kısa çizginin (U+00AD) ve ardından "m" karakterinin konumunu bulmak için kullanılır. Dizelerden yalnızca biri gerekli alt dizeyi içerir. Örnek .NET Framework 4 veya sonraki sürümlerinde çalıştırılıyorsa, 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 "m" içeren ilk dize söz konusu olduğunda, yöntemin kültüre duyarlı bir karşılaştırma gerçekleştirdiğinde "m" dizini döndürdüğünü unutmayın. yöntemi, yalnızca sıralı bir karşılaştırma gerçekleştirdiğinde ilk dizedeki geçici kısa çizginin dizinini döndürür.

C#
string searchString = "\u00ADm";

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

int position;

position = s1.LastIndexOf('m');
if (position >= 1)
{
    Console.WriteLine(s1.LastIndexOf(searchString, position, position, StringComparison.CurrentCulture));
    Console.WriteLine(s1.LastIndexOf(searchString, position, position, StringComparison.Ordinal));
}

position = s2.LastIndexOf('m');
if (position >= 1)
{
    Console.WriteLine(s2.LastIndexOf(searchString, position, position, StringComparison.CurrentCulture));
    Console.WriteLine(s2.LastIndexOf(searchString, position, position, 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

LastIndexOf(String, Int32, Int32)

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

Bu örnekte belirtilen dizenin son oluşumunun sıfır tabanlı dizin konumunu bildirir. Arama belirtilen karakter konumunda başlar ve belirtilen sayıda karakter konumu için dizenin başına doğru geriye doğru ilerler.

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

Parametreler

value
String

Aranacak dize.

startIndex
Int32

Arama başlangıç konumu. Arama, startIndex bu örneğin başına doğru ilerler.

count
Int32

İncelenmesi gereken karakter konumlarının sayısı.

Döndürülenler

Dize bulunursa value sıfır tabanlı başlangıç dizini konumu veya bulunamazsa veya geçerli örnek Emptyeşitse -1.

Özel durumlar

value null.

count negatif.

-veya-

Geçerli örnek Emptyeşit değildir ve startIndex negatiftir.

-veya-

Geçerli örnek Emptyeşit değildir ve startIndex bu örneğin uzunluğundan büyüktür.

-veya-

Geçerli örnek Emptyeşit değildir ve startIndex - count+ 1 bu örnekte olmayan bir konum belirtir.

-veya-

Geçerli örnek Empty eşit ve startIndex -1'den küçük veya sıfırdan büyük.

-veya-

Geçerli örnek Empty eşit ve count 1'den büyük.

Örnekler

Aşağıdaki örnek, alt dizenin sonundan alt dizenin başına kadar çalışan bir dizenin alt dizedeki tüm oluşumlarının dizinini bulur.

C#
// Sample for String.LastIndexOf(String, Int32, Int32)
using System;

class Sample {
    public static void Main() {

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

    start = str.Length-1;
    end = start/2 - 1;
    Console.WriteLine("All occurrences of 'he' from position {0} to {1}.", start, end);
    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 > -1) && (at > -1))
        {
        count = start - end; //Count must be within the substring.
        at = str.LastIndexOf("he", start, count);
        if (at > -1)
            {
            Console.Write("{0} ", at);
            start = at - 1;
            }
        }
    Console.Write("{0}{0}{0}", Environment.NewLine);
    }
}
/*
This example produces the following results:
All occurrences of 'he' from position 66 to 32.
0----+----1----+----2----+----3----+----4----+----5----+----6----+-
0123456789012345678901234567890123456789012345678901234567890123456
Now is the time for all good men to come to the aid of their party.

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

Açıklamalar

Dizin numaralandırma sıfırdan başlar. Başka bir ifadeyle, dizedeki ilk karakter sıfır dizininde, son karakter ise Length - 1'dedir.

Arama, bu örneğin startIndex karakter konumunda başlar ve value bulunana veya count karakter konumları incelenene kadar başa doğru geriye doğru ilerler. Örneğin, startIndexLength - 1 ise, yöntem dizedeki son karakterden geriye count karakterler arar.

Bu yöntem, geçerli kültürü kullanarak bir sözcük (büyük/küçük harfe duyarlı ve kültüre duyarlı) arama gerçekleştirir.

Karakter kümeleri, dilsel veya kültüre duyarlı karşılaştırma yapılırken dikkate alınmayan karakterler olan yoksayı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.

Aşağıdaki örnekte LastIndexOf yöntemi, iki dizede "m" veya "n" sözcüğünü izleyen bir yumuşak kısa çizginin (U+00AD) konumunu bulmak için kullanılır. Dizelerden yalnızca biri yumuşak kısa çizgi içerir. Yumuşak kısa çizgi ve ardından "m" içeren dize söz konusu olduğunda, LastIndexOf yumuşak kısa çizgi ve ardından "m" sözcüğünü ararken "m" dizinini döndürür.

C#
int position = 0;
string s1 = "ani\u00ADmal";
string s2 = "animal";

// Find the index of the soft hyphen followed by "n".
position = s1.LastIndexOf("m");
Console.WriteLine($"'m' at position {position}");

if (position >= 0)
    Console.WriteLine(s1.LastIndexOf("\u00ADn", position, position + 1));

position = s2.LastIndexOf("m");
Console.WriteLine($"'m' at position {position}");

if (position >= 0)
    Console.WriteLine(s2.LastIndexOf("\u00ADn", position, position + 1));

// Find the index of the soft hyphen followed by "m".
position = s1.LastIndexOf("m");
Console.WriteLine($"'m' at position {position}");

if (position >= 0)
    Console.WriteLine(s1.LastIndexOf("\u00ADm", position, position + 1));

position = s2.LastIndexOf("m");
Console.WriteLine($"'m' at position {position}");

if (position >= 0)
    Console.WriteLine(s2.LastIndexOf("\u00ADm", position, position + 1));

// The example displays the following output:
//
// 'm' at position 4
// 1
// 'm' at position 3
// 1
// 'm' at position 4
// 4
// 'm' at position 3
// 3

Arayanlara Notlar

En İyi DizeleriKullanma Yöntemleri 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 bu işlemi gerçekleştirmek için, comparisonType parametresi için CurrentCulture değeriyle LastIndexOf(String, Int32, Int32, StringComparison) yöntemi aşırı yüklemesini çağırarak amacınıza açıkça işaret verin. Dil bilgili karşılaştırmaya ihtiyacınız yoksa Ordinalkullanmayı gö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

LastIndexOf(Char, Int32, Int32)

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

Bu örnekteki bir alt dizede belirtilen Unicode karakterinin son oluşumunun sıfır tabanlı dizin konumunu bildirir. Arama belirtilen karakter konumunda başlar ve belirtilen sayıda karakter konumu için dizenin başına doğru geriye doğru ilerler.

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

Parametreler

value
Char

Aranacak Unicode karakteri.

startIndex
Int32

Aramanın başlangıç konumu. Arama, startIndex bu örneğin başına doğru ilerler.

count
Int32

İncelenmesi gereken karakter konumlarının sayısı.

Döndürülenler

Bu karakter bulunursa value sıfır tabanlı dizin konumu veya bulunamazsa veya geçerli örnek Emptyeşitse -1.

Özel durumlar

Geçerli örnek Emptyeşit değildir ve startIndex bu örneğin uzunluğuna eşit veya sıfırdan küçüktür.

-veya-

Geçerli örnek Emptyeşit değildir ve startIndex - count + 1 sıfırdan küçüktür.

Örnekler

Aşağıdaki örnek, bir alt dizedeki bir karakterin tüm oluşumlarının dizinini bulur ve alt dizenin sonundan alt dizenin başına kadar çalışır.

C#
// Sample for String.LastIndexOf(Char, Int32, Int32)
using System;

class Sample {
    public static void Main() {

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

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

    count = 0;
    at = 0;
    while((start > -1) && (at > -1))
        {
        count = start - end; //Count must be within the substring.
        at = str.LastIndexOf('t', start, count);
        if (at > -1)
            {
            Console.Write("{0} ", at);
            start = at - 1;
            }
        }
    Console.Write("{0}{0}{0}", Environment.NewLine);
    }
}
/*
This example produces the following results:
All occurrences of 't' from position 66 to 32.
0----+----1----+----2----+----3----+----4----+----5----+----6----+-
0123456789012345678901234567890123456789012345678901234567890123456
Now is the time for all good men to come to the aid of their party.

The letter 't' occurs at position(s): 64 55 44 41 33


*/

Açıklamalar

Dizin numaralandırma sıfırdan başlar. Başka bir ifadeyle, dizedeki ilk karakter sıfır dizininde, son karakter ise Length - 1'dedir.

Bu yöntem startIndex karakter konumunda aramaya başlar ve value bulunana veya count karakter konumları incelenene kadar bu örneğin başına doğru geriye doğru ilerler. Örneğin, startIndexLength - 1 ise, yöntem dizedeki son karakterden geriye count karakterler arar. Arama büyük/küçük harfe duyarlıdır.

Bu yöntem, yalnızca Unicode skaler değerleri aynı olduğunda bir karakterin başka bir karaktere eşdeğer olarak kabul edildiği sıralı (kültüre duyarsız) bir arama gerçekleştirir. Kültüre duyarlı bir arama gerçekleştirmek için CompareInfo.LastIndexOf yöntemini kullanın; burada "Æ" (U+00C6) ligatürü gibi önceden derlenmiş bir karakteri temsil eden Unicode skaler değeri, karakterin bileşenlerinin kültüre bağlı olarak "AE" (U+0041, U+0045) gibi doğru sırada ortaya çıkmasıyla eşdeğer 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

LastIndexOf(String, StringComparison)

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

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

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

Parametreler

value
String

Aranacak dize.

comparisonType
StringComparison

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

Döndürülenler

Dize bulunursa value parametresinin sıfır tabanlı başlangıç dizini konumu veya bulunamazsa -1.

Özel durumlar

value null.

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

Örnekler

Aşağıdaki örnekte, StringComparison numaralandırmasının farklı değerlerini kullanarak bir dizenin başka bir dizedeki son oluşumunu bulan LastIndexOf yönteminin üç aşırı yüklemesi gösterilmektedir.

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

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

class Sample 
{
    public static void Main() 
    {
    string intro = "Find the last 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 StringComparsion. Specify the start 
// index and count. 

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

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

// Search using different values of StringComparsion. 
    Console.WriteLine("\nPart 3: Neither start index nor count is specified.");
    foreach (StringComparison sc in scValues)
        {
        loc = cat.LastIndexOf(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 last 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ırma sıfırdan başlar. Başka bir ifadeyle, dizedeki ilk karakter sıfır dizininde, son karakter ise Length - 1'dedir.

comparisonType parametresi, kullanarak value parametresinin aranacak olduğunu belirtir:

  • Geçerli veya sabit kültür.
  • Büyük/küçük harfe duyarlı veya büyük/küçük harfe duyarlı olmayan bir arama.
  • Sözcük veya sıralı karşılaştırma kuralları.

Arama, bu örneğin son karakter konumunda başlar ve value bulunana veya ilk karakter konumu incelenene kadar başa doğru geriye doğru ilerler.

Arayanlara Notlar

Karakter kümeleri, dilsel veya kültüre duyarlı karşılaştırma yapılırken dikkate alınmayan karakterler olan yoksayılabilir karakterler içerir. Kültüre duyarlı bir aramada (optionsOrdinal veya OrdinalIgnoreCasedeğilse), value yoksayılabilir bir karakter içeriyorsa, sonuç bu karakter kaldırılmış olarak aramaya eşdeğerdir.

Aşağıdaki örnekte, LastIndexOf(String, StringComparison) yöntemi iki dizede iki alt dizeyi (bir yumuşak kısa çizgi ve ardından "n" ve ardından "m") bulmak için kullanılır. Dizelerden yalnızca biri yumuşak kısa çizgi içerir. Örnek .NET Framework 4 veya sonraki sürümlerinde çalıştırılıyorsa, yumuşak kısa çizgi yoksayılabilir bir karakter olduğundan, kültüre duyarlı bir arama, geçici kısa çizgi arama dizesine dahil edilmezse döndüreceği değeri döndürür. Ancak sıralı arama, bir dizedeki geçici kısa çizgiyi başarıyla bulur ve ikinci dizede bulunmadığını bildirir.

C#
string s1 = "ani\u00ADmal";
string s2 = "animal";

Console.WriteLine("Culture-sensitive comparison:");

// Use culture-sensitive comparison to find the last soft hyphen followed by "n".
Console.WriteLine(s1.LastIndexOf("\u00ADn", StringComparison.CurrentCulture));
Console.WriteLine(s2.LastIndexOf("\u00ADn", StringComparison.CurrentCulture));

// Use culture-sensitive comparison to find the last soft hyphen followed by "m".
Console.WriteLine(s1.LastIndexOf("\u00ADm", StringComparison.CurrentCulture));
Console.WriteLine(s2.LastIndexOf("\u00ADm", StringComparison.CurrentCulture));

Console.WriteLine("Ordinal comparison:");

// Use ordinal comparison to find the last soft hyphen followed by "n".
Console.WriteLine(s1.LastIndexOf("\u00ADn", StringComparison.Ordinal));
Console.WriteLine(s2.LastIndexOf("\u00ADn", StringComparison.Ordinal));

// Use ordinal comparison to find the last soft hyphen followed by "m".
Console.WriteLine(s1.LastIndexOf("\u00ADm", StringComparison.Ordinal));
Console.WriteLine(s2.LastIndexOf("\u00ADm", StringComparison.Ordinal));

// The example displays the following output:
//
// Culture-sensitive comparison:
// 1
// 1
// 4
// 3
// Ordinal comparison:
// -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

LastIndexOf(String, Int32, StringComparison)

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

Geçerli String nesnesi içinde belirtilen dizenin son oluşumunun sıfır tabanlı dizinini raporlar. Arama belirtilen karakter konumunda başlar ve dizenin başına doğru geriye doğru ilerler. Parametre, belirtilen dizeyi ararken gerçekleştirilecek karşılaştırma türünü belirtir.

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

Parametreler

value
String

Aranacak dize.

startIndex
Int32

Arama başlangıç konumu. Arama, startIndex bu örneğin başına doğru ilerler.

comparisonType
StringComparison

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

Döndürülenler

Dize bulunursa value parametresinin sıfır tabanlı başlangıç dizini konumu veya bulunamazsa veya geçerli örnek Emptyeşitse -1.

Özel durumlar

value null.

Geçerli örnek Emptyeşit değildir ve startIndex, geçerli örneğin uzunluğundan sıfırdan küçük veya daha büyüktür.

-veya-

Geçerli örnek Emptyeşittir ve startIndex -1'den küçük veya sıfırdan büyük.

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

Örnekler

Aşağıdaki örnekte, StringComparison numaralandırmasının farklı değerlerini kullanarak bir dizenin başka bir dizedeki son oluşumunu bulan LastIndexOf yönteminin üç aşırı yüklemesi gösterilmektedir.

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

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

class Sample 
{
    public static void Main() 
    {
    string intro = "Find the last 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 StringComparsion. Specify the start 
// index and count. 

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

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

// Search using different values of StringComparsion. 
    Console.WriteLine("\nPart 3: Neither start index nor count is specified.");
    foreach (StringComparison sc in scValues)
        {
        loc = cat.LastIndexOf(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 last 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ırma sıfırdan başlar. Başka bir ifadeyle, dizedeki ilk karakter sıfır dizininde, son karakter ise Length - 1'dedir.

Arama startIndex karakter konumunda başlar ve value bulunana veya ilk karakter konumu incelenene kadar geriye doğru ilerler. Örneğin, startIndexLength - 1 ise, yöntem dizedeki son karakterden başa kadar her karakteri arar.

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 value parametresinin aranacak şekilde belirtilmektedir.

Arayanlara Notlar

Karakter kümeleri, dilsel veya kültüre duyarlı karşılaştırma yapılırken dikkate alınmayan karakterler olan yoksayılabilir karakterler içerir. Kültüre duyarlı bir aramada (comparisonTypeOrdinal veya OrdinalIgnoreCasedeğilse), value yoksayılabilir bir karakter içeriyorsa, sonuç bu karakter kaldırılmış olarak aramaya eşdeğerdir.

Aşağıdaki örnekte LastIndexOf(String, Int32, StringComparison) yöntemi, iki dizede son "m" ile başlayarak bir yumuşak kısa çizgi (U+00AD) ve ardından "m" konumunu bulmak için kullanılır. Dizelerden yalnızca biri gerekli alt dizeyi içerir. Örnek .NET Framework 4 veya sonraki sürümlerinde çalıştırılıyorsa, 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. Yumuşak kısa çizgi ve ardından "m" içeren ilk dize söz konusu olduğunda, yöntemin yumuşak kısa çizginin dizinini değil "m" dizini döndürdüğünü unutmayın. yöntemi, yalnızca sıralı bir karşılaştırma gerçekleştirdiğinde ilk dizedeki geçici kısa çizginin dizinini döndürür.

C#
string searchString = "\u00ADm";

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

int position;

position = s1.LastIndexOf('m');
if (position >= 0)
{
    Console.WriteLine(s1.LastIndexOf(searchString, position, StringComparison.CurrentCulture));
    Console.WriteLine(s1.LastIndexOf(searchString, position, StringComparison.Ordinal));
}

position = s2.LastIndexOf('m');
if (position >= 0)
{
    Console.WriteLine(s2.LastIndexOf(searchString, position, StringComparison.CurrentCulture));
    Console.WriteLine(s2.LastIndexOf(searchString, position, 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

LastIndexOf(Char, Int32)

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

Bu örnekte belirtilen Unicode karakterinin son oluşumunun sıfır tabanlı dizin konumunu bildirir. Arama belirtilen karakter konumunda başlar ve dizenin başına doğru geriye doğru ilerler.

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

Parametreler

value
Char

Aranacak Unicode karakteri.

startIndex
Int32

Aramanın başlangıç konumu. Arama, startIndex bu örneğin başına doğru ilerler.

Döndürülenler

Bu karakter bulunursa value sıfır tabanlı dizin konumu veya bulunamazsa veya geçerli örnek Emptyeşitse -1.

Özel durumlar

Geçerli örnek Emptyeşit değildir ve startIndex bu örneğin uzunluğuna eşit veya sıfırdan küçüktür.

Örnekler

Aşağıdaki örnek, dizenin sonundan dizenin başlangıcına kadar çalışan bir dizedeki karakterin tüm oluşumlarının dizinini bulur.

C#
// Sample for String.LastIndexOf(Char, Int32)
using System;

class Sample {
    public static void Main() {

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

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

    at = 0;
    while((start > -1) && (at > -1))
        {
        at = str.LastIndexOf('t', start);
        if (at > -1)
            {
            Console.Write("{0} ", at);
            start = at - 1;
            }
        }
    Console.Write("{0}{0}{0}", Environment.NewLine);
    }
}
/*
This example produces the following results:
All occurrences of 't' from position 66 to 0.
0----+----1----+----2----+----3----+----4----+----5----+----6----+-
0123456789012345678901234567890123456789012345678901234567890123456
Now is the time for all good men to come to the aid of their party.

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

Açıklamalar

Dizin numaralandırma sıfırdan başlar. Başka bir ifadeyle, dizedeki ilk karakter sıfır dizininde, son karakter ise Length - 1'dedir. Bu yöntem, bu örneğin startIndex karakter konumunda aramaya başlar ve value bulunana veya ilk karakter konumu incelenene kadar geçerli örneğin başına doğru geriye doğru ilerler. Örneğin, startIndexLength - 1 ise, yöntem dizedeki son karakterden başa kadar her karakteri arar. Arama büyük/küçük harfe duyarlıdır.

Bu yöntem, yalnızca Unicode skaler değerleri aynı olduğunda bir karakterin başka bir karaktere eşdeğer olarak kabul edildiği sıralı (kültüre duyarsız) bir arama gerçekleştirir. Kültüre duyarlı bir arama gerçekleştirmek için CompareInfo.LastIndexOf yöntemini kullanın; burada "Æ" (U+00C6) ligatürü gibi önceden derlenmiş bir karakteri temsil eden Unicode skaler değeri, karakterin bileşenlerinin kültüre bağlı olarak "AE" (U+0041, U+0045) gibi doğru sırada ortaya çıkmasıyla eşdeğer 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

LastIndexOf(String)

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

Bu örnekte belirtilen dizenin son oluşumunun sıfır tabanlı dizin konumunu bildirir.

C#
public int LastIndexOf (string value);

Parametreler

value
String

Aranacak dize.

Döndürülenler

Dize bulunursa value sıfır tabanlı başlangıç dizini konumu veya bulunamazsa -1.

Özel durumlar

value null.

Örnekler

Aşağıdaki örnek, etiketler dizeyi başlatır ve bitirirse bir dizeden HTML etiketlerini açma ve kapatmayı kaldırır. Bir dize bir kapanış köşeli ayracı karakteriyle (">") bitiyorsa, örnek, bitiş etiketinin başlangıcını bulmak için LastIndexOf yöntemini kullanır.

C#
using System;

public class Example 
{
   public static void Main() 
   {
      string[] strSource = { "<b>This is bold text</b>", "<H1>This is large Text</H1>",
               "<b><i><font color=green>This has multiple tags</font></i></b>",
               "<b>This has <i>embedded</i> tags.</b>",
               "This line ends with a greater than symbol and should not be modified>" };

      // Strip HTML start and end tags from each string if they are present.
      foreach (string s in strSource)
      {
         Console.WriteLine("Before: " + s);
         string item = s;
         // Use EndsWith to find a tag at the end of the line.
         if (item.Trim().EndsWith(">")) 
         {
            // Locate the opening tag.
            int endTagStartPosition = item.LastIndexOf("</");
            // Remove the identified section, if it is valid.
            if (endTagStartPosition >= 0 )
               item = item.Substring(0, endTagStartPosition);

            // Use StartsWith to find the opening tag.
            if (item.Trim().StartsWith("<"))
            {
               // Locate the end of opening tab.
               int openTagEndPosition = item.IndexOf(">");
               // Remove the identified section, if it is valid.
               if (openTagEndPosition >= 0)
                  item = item.Substring(openTagEndPosition + 1);
            }      
         }
         // Display the trimmed string.
         Console.WriteLine("After: " + item);
         Console.WriteLine();
      }                   
   }
}
// The example displays the following output:
//    Before: <b>This is bold text</b>
//    After: This is bold text
//    
//    Before: <H1>This is large Text</H1>
//    After: This is large Text
//    
//    Before: <b><i><font color=green>This has multiple tags</font></i></b>
//    After: <i><font color=green>This has multiple tags</font></i>
//    
//    Before: <b>This has <i>embedded</i> tags.</b>
//    After: This has <i>embedded</i> tags.
//    
//    Before: This line ends with a greater than symbol and should not be modified>
//    After: This line ends with a greater than symbol and should not be modified>

Açıklamalar

Dizin numaralandırma sıfırdan başlar. Başka bir ifadeyle, dizedeki ilk karakter sıfır dizininde, son karakter ise Length - 1'dedir.

Arama, bu örneğin son karakter konumunda başlar ve value bulunana veya ilk karakter konumu incelenene kadar başa doğru geriye doğru ilerler.

Bu yöntem, geçerli kültürü kullanarak bir sözcük (büyük/küçük harfe duyarlı ve kültüre duyarlı) arama gerçekleştirir.

Karakter kümeleri, dilsel veya kültüre duyarlı karşılaştırma yapılırken dikkate alınmayan karakterler olan yoksayı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.

Aşağıdaki örnekte, LastIndexOf(String) yöntemi iki dizede iki alt dizeyi ("n" ve ardından "m" gelen yumuşak kısa çizgi) bulmak için kullanılır. Dizelerden yalnızca biri yumuşak kısa çizgi içerir. Örnek .NET Framework 4 veya sonraki bir sürümde çalıştırılıyorsa, her durumda, yumuşak kısa çizgi yoksayılabilir bir karakter olduğundan, sonuç value'de yumuşak kısa çizginin eklenmemiş olmasıyla aynıdır.

C#
string s1 = "ani\u00ADmal";
string s2 = "animal";

// Find the index of the last soft hyphen followed by "n".
Console.WriteLine(s1.LastIndexOf("\u00ADn"));
Console.WriteLine(s2.LastIndexOf("\u00ADn"));

// Find the index of the last soft hyphen followed by "m".
Console.WriteLine(s1.LastIndexOf("\u00ADm"));
Console.WriteLine(s2.LastIndexOf("\u00ADm"));

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

Arayanlara Notlar

En İyi DizeleriKullanma Yöntemleri 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ğindeki bir alt dizenin son dizinini bulmak için, comparisonType parametresi için CurrentCulture değeriyle LastIndexOf(String, StringComparison) yöntemi aşırı yüklemesini çağırarak amacınıza açıkça işaret verin. Dil bilgili karşılaştırmaya ihtiyacınız yoksa Ordinalkullanmayı gö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

LastIndexOf(Char)

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

Bu örnekte belirtilen Unicode karakterinin son oluşumunun sıfır tabanlı dizin konumunu bildirir.

C#
public int LastIndexOf (char value);

Parametreler

value
Char

Aranacak Unicode karakteri.

Döndürülenler

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

Örnekler

Aşağıdaki örnek, bir dizedeki son dizin ayırıcı karakterini bulmak ve dizenin dosya adını ayıklamak için LastIndexOf(Char) yöntemini kullanan bir ExtractFilename yöntemi tanımlar. Dosya varsa, yöntemi yolu olmadan dosya adını döndürür.

C#
using System;
using System.IO;

public class TestLastIndexOf
{
   public static void Main()
   {
      string filename;
      
      filename = ExtractFilename(@"C:\temp\");
      Console.WriteLine("{0}", String.IsNullOrEmpty(filename) ? "<none>" : filename);
      
      filename = ExtractFilename(@"C:\temp\delegate.txt"); 
      Console.WriteLine("{0}", String.IsNullOrEmpty(filename) ? "<none>" : filename);

      filename = ExtractFilename("delegate.txt");      
      Console.WriteLine("{0}", String.IsNullOrEmpty(filename) ? "<none>" : filename);
      
      filename = ExtractFilename(@"C:\temp\notafile.txt");
      Console.WriteLine("{0}", String.IsNullOrEmpty(filename) ? "<none>" : filename);
   }

   public static string ExtractFilename(string filepath)
   {
      // If path ends with a "\", it's a path only so return String.Empty.
      if (filepath.Trim().EndsWith(@"\"))
         return String.Empty;
      
      // Determine where last backslash is.
      int position = filepath.LastIndexOf('\\');
      // If there is no backslash, assume that this is a filename.
      if (position == -1)
      {
         // Determine whether file exists in the current directory.
         if (File.Exists(Environment.CurrentDirectory + Path.DirectorySeparatorChar + filepath)) 
            return filepath;
         else
            return String.Empty;
      }
      else
      {
         // Determine whether file exists using filepath.
         if (File.Exists(filepath))
            // Return filename without file path.
            return filepath.Substring(position + 1);
         else
            return String.Empty;
      }
   }
}

Açıklamalar

Dizin numaralandırma sıfırdan başlar. Başka bir ifadeyle, dizedeki ilk karakter sıfır dizininde, son karakter ise Length - 1'dedir.

Bu yöntem, bu örneğin son karakter konumunda aramaya başlar ve value bulunana veya ilk karakter konumu incelenene kadar başa doğru geriye doğru ilerler. Arama büyük/küçük harfe duyarlıdır.

Bu yöntem, yalnızca Unicode skaler değerleri aynı olduğunda bir karakterin başka bir karaktere eşdeğer olarak kabul edildiği sıralı (kültüre duyarsız) bir arama gerçekleştirir. Kültüre duyarlı bir arama gerçekleştirmek için CompareInfo.LastIndexOf yöntemini kullanın; burada "Æ" (U+00C6) ligatürü gibi önceden derlenmiş bir karakteri temsil eden Unicode skaler değeri, karakterin bileşenlerinin kültüre bağlı olarak "AE" (U+0041, U+0045) gibi doğru sırada ortaya çıkmasıyla eşdeğer 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

LastIndexOf(String, Int32)

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

Bu örnekte belirtilen dizenin son oluşumunun sıfır tabanlı dizin konumunu bildirir. Arama belirtilen karakter konumunda başlar ve dizenin başına doğru geriye doğru ilerler.

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

Parametreler

value
String

Aranacak dize.

startIndex
Int32

Arama başlangıç konumu. Arama, startIndex bu örneğin başına doğru ilerler.

Döndürülenler

Dize bulunursa value sıfır tabanlı başlangıç dizini konumu veya bulunamazsa veya geçerli örnek Emptyeşitse -1.

Özel durumlar

value null.

Geçerli örnek Emptyeşit değildir ve startIndex, geçerli örneğin uzunluğundan sıfırdan küçük veya daha büyüktür.

-veya-

Geçerli örnek Emptyeşittir ve startIndex -1'den küçük veya sıfırdan büyük.

Örnekler

Aşağıdaki örnek, hedef dizenin sonundan hedef dizenin başlangıcına kadar bir dizenin hedef dizedeki tüm oluşumlarının dizinini bulur.

C#
// Sample for String.LastIndexOf(String, Int32)
using System;

class Sample {
    public static void Main() {

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

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

    at = 0;
    while((start > -1) && (at > -1))
        {
        at = str.LastIndexOf("he", start);
        if (at > -1)
            {
            Console.Write("{0} ", at);
            start = at - 1;
            }
        }
    Console.Write("{0}{0}{0}", Environment.NewLine);
    }
}
/*
This example produces the following results:
All occurrences of 'he' from position 66 to 0.
0----+----1----+----2----+----3----+----4----+----5----+----6----+-
0123456789012345678901234567890123456789012345678901234567890123456
Now is the time for all good men to come to the aid of their party.

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


*/

Açıklamalar

Dizin numaralandırma sıfırdan başlar. Başka bir ifadeyle, dizedeki ilk karakter sıfır dizininde, son karakter ise Length - 1'dedir.

Arama bu örneğin startIndex karakter konumunda başlar ve value bulunana veya ilk karakter konumu incelenene kadar başa doğru geriye doğru ilerler. Örneğin, startIndexLength - 1 ise, yöntem dizedeki son karakterden başa kadar her karakteri arar.

Bu yöntem, geçerli kültürü kullanarak bir sözcük (büyük/küçük harfe duyarlı ve kültüre duyarlı) arama gerçekleştirir.

Karakter kümeleri, dilsel veya kültüre duyarlı karşılaştırma yapılırken dikkate alınmayan karakterler olan yoksayı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. Aşağıdaki örnekte, LastIndexOf(String, Int32) yöntemi, geçici kısa çizgi (U+00AD) içeren ve dizede son "m" değerinin önüne gelen veya içeren bir alt dizeyi bulmak için kullanılır. Örnek .NET Framework 4 veya sonraki bir sürümde çalıştırılıyorsa, arama dizesindeki geçici kısa çizgi yoksayıldığından, yumuşak kısa çizgiden ve "m" içeren bir alt dizeyi bulmak için yöntemini çağırarak dizede "m" ifadesinin konumu döndürülürken, onu çağırarak yumuşak kısa çizgiden ve "n" sözcüğünden oluşan bir alt dize bulmak için "n" konumunu döndürür.

C#
int position = 0;
string s1 = "ani\u00ADmal";
string s2 = "animal";

// Find the index of the soft hyphen followed by "n".
position = s1.LastIndexOf("m");
Console.WriteLine($"'m' at position {position}");

if (position >= 0)
    Console.WriteLine(s1.LastIndexOf("\u00ADn", position));

position = s2.LastIndexOf("m");
Console.WriteLine($"'m' at position {position}");

if (position >= 0)
    Console.WriteLine(s2.LastIndexOf("\u00ADn", position));

// Find the index of the soft hyphen followed by "m".
position = s1.LastIndexOf("m");
Console.WriteLine($"'m' at position {position}");

if (position >= 0)
    Console.WriteLine(s1.LastIndexOf("\u00ADm", position));

position = s2.LastIndexOf("m");
Console.WriteLine($"'m' at position {position}");

if (position >= 0)
    Console.WriteLine(s2.LastIndexOf("\u00ADm", position));

// The example displays the following output:
//
// 'm' at position 4
// 1
// 'm' at position 3
// 1
// 'm' at position 4
// 4
// 'm' at position 3
// 3

Arayanlara Notlar

En İyi DizeleriKullanma Yöntemleri 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 önce gelen bir alt dizenin dizinini bulmak için, comparisonType parametresi için CurrentCulture değeriyle LastIndexOf(String, Int32, StringComparison) yöntemi aşırı yüklemesini çağırarak amacınızı açıkça belirtin. Dil bilgili karşılaştırmaya ihtiyacınız yoksa Ordinalkullanmayı gö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