SORU
31 Ocak 2009, CUMARTESİ


String.() İçeren bir Dize daha hızlı.() Adres bilgisi?

Yaklaşık 2000 karakter string bir tampon var ve eğer belirli bir dize içeriyorsa, tampon kontrol edin.

Herkes String.Contains method String.IndexOf method daha iyi yapar biliyor mu?

    // 2000 characters in s1, search token in s2
    string s1 = "Many characters. The quick brown fox jumps over the lazy dog"; 
    string s2 = "fox";
    bool b;
    b = s1.Contains(s2);
    int i;
    i = s1.IndexOf(s2);

Fun fact

CEVAP
31 Ocak 2009, CUMARTESİ


Contains aramalar IndexOf:

public bool Contains(string value)
{
    return (this.IndexOf(value, StringComparison.Ordinal) >= 0);
}

Sonuçta bir CLR uygulaması kullanan CompareInfo.IndexOf, çağıran.

Eğer dizeleri CLR göre nasıl 14 ** (bak . görmek isterseniz ^em>CaseİnsensitiveCompHelper).

IndexOf(string) bir seçenek yok ve Contains()bir Sıra compare (bir byte-by-byte gerçekleştirmek için çabalamak yerine, karşılaştırma akıllı, örneğin, e é ile karşılaştırın) kullanır.

IndexOf IndexOf düz bir dize arama Kernel32.dll (reflektör güç!) FindNLSString kullanarak gider gibi biraz daha hızlı (teoride).

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ghosti66

    ghosti66

    27 AĞUSTOS 2006
  • Lamarr Wilson

    Lamarr Wilso

    27 Aralık 2008
  • The Fashion Sight

    The Fashion

    22 AĞUSTOS 2011