資訊
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

String.LastIndexOf 方法 (String, Int32, Int32, StringComparison)

回報這個執行個體中指定之字串最後一次出現時的所在索引 (以零起始)。 搜尋 starts at a specified character position 和 proceeds backward toward the beginning of the string for the specified number of character positions. 參數會指定搜尋指定字串時要執行的比較類型。

命名空間:  System
組件:  mscorlib (在 mscorlib.dll 中)

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

參數

value
類型:System.String
要尋找的字串。
startIndex
類型:System.Int32
搜尋起始位置。 搜尋會從 startIndex 朝這個執行個體的開頭進行。
count
類型:System.Int32
要檢視的字元位置數目。
comparisonType
類型:System.StringComparison
其中一個列舉值,指定搜尋規則。

傳回值

類型:System.Int32
value 參數的以零起始的起始索引位置,如果找到該字串,則為 -1。如果找不到,或者如果目前執行個體等於 String.Empty 如果 valueString.Empty,則傳回值會是 startIndex 和此例項中最後索引位置兩者中較小者。

例外狀況條件
ArgumentNullException

valuenull

ArgumentOutOfRangeException

count 為負值。

-或-

目前執行個體不等於 String.Empty,而且 startIndex 為負數。

-或-

目前的執行個體不等於 String.Empty,而且 startIndex 大於這個執行個體的長度。

-或-

目前執行個體不等於 String.Empty,而且 startIndex + 1 - count 指定不在這個執行個體中的位置。

-或-

目前執行個體等於 String.Empty,而且 start 小於 -1 或大於零。

-或-

目前執行個體等於 String.Empty,而且 count 大於 1。

ArgumentException

comparisonType 不是有效的 System.StringComparison 值。

索引編號從零起始。 亦即,字串中的第一個字元位於索引零,而最後一個字元位於 Length - 1。

搜尋會從 startIndex 字元位置開始並往後進行,直到找到 value 或已檢查 count 個字元位置為止。 例如,如果 startIndexLength - 1,此方法就會從字串的最後一個字元,反向搜尋 count 字元。

comparisonType 參數會指定使用目前或不因文化而異的特性、使用區大小寫或不區大小寫搜尋,以及使用字組或序數比較規則,以搜尋 value 參數。

呼叫者注意事項

字元集包含可忽略的字元,這些字元在執行語言或區分文化特性的比較時不列入考慮。 執行區分文化特性的搜尋 (也就是說,如果 comparisonType 不是 StringComparison.OrdinalStringComparison.OrdinalIgnoreCase) 時,如果 value 包含可忽略的字元,則結果等於在已移除該字元的情況下搜尋。 如果 value 只包含一或多個可忽略的字元, LastIndexOf(String, Int32, Int32, StringComparison) 方法永遠會傳回 startIndex,這是開始搜尋的字元位置。

在下列範例中, LastIndexOf(String, Int32, Int32, StringComparison) 方法總計,但第一個字元位置來尋找接著「m」的位置柔和連字號(U+00AD) 在最後「m」的前兩個字串。 只有其中一個字串包含必要的子字串。 如果這個範例在 .NET Framework 4 或執行之後,在這兩種情況下,使用,因為這個軟體的連字號為可忽略的字元,則方法會傳回「m」索引字串,會執行區分文化特性的比較時。 當執行序數比較的時候,然而,它會找到只在第一個字串中的子字串。 請注意在第一個字串,在此情況下,包括「m」後面接著這個軟體的連字號,傳回方法的失效這個軟體的連字號的索引,而是傳回這個「m」的索引,會執行區分文化特性的比較。 只有在執行序數比較時,方法才會傳回第一個字串中選擇性連字號的索引。


using System;

public class Example
{
   public static void Main()
   {
      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


下列範例示範 LastIndexOf 方法的三個多載,該方法會使用 StringComparison 列舉型別的不同值,在另一個字串內尋找最後一個符合的字串。


// 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

*/


.NET Framework

支援版本:4.5.2、4.5.1、4.5、4、3.5、3.0、2.0

.NET Framework Client Profile

支援版本:4、3.5 SP1

可攜式類別庫

支援版本:可攜式類別庫

適用於 Windows 市集應用程式的 .NET

支援版本:Windows 8

適用於 Windows Phone 應用程式的 .NET

支援版本:Windows Phone 8、Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (不支援伺服器核心角色), Windows Server 2008 R2 (SP1 (含) 以後版本支援伺服器核心角色,不支援 Itanium)

.NET Framework 並不支援各種平台的所有版本。如需支援版本的清單,請參閱.NET Framework 系統需求

社群新增項目

顯示:
© 2014 Microsoft