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

  • 07cadikiz07

    07cadikiz07

    17 EKİM 2007
  • Jonathan D.

    Jonathan D.

    3 Kasım 2006
  • MrDevin521

    MrDevin521

    18 Temmuz 2010