SORU
25 HAZİRAN 2010, Cuma


Ne kadar büyük / küçük harf duyarlı dize karşılaştırma yapabilirim?

Ne durumda aşağıdaki satırı duyarsız yapabilir miyim?

drUser["Enrolled"] = 
      (enrolledUsers.FindIndex(x => x.Username == (string)drUser["Username"]) != -1);

Kullandığım önerilen bazı öneriler bugün verildi:

x.Username.Equals((string)drUser["Username"], StringComparison.OrdinalIgnoreCase)));

sorun bu işe giremiyorum, aşağıdaki satırı denedim, ama yanlış sonuçlar derler döndürür, döndürür kayıtlı olarak unenrolled ve unenrolled kullanıcılar kullanıcı olarak kayıtlı.

drUser["Enrolled"] = 
      (enrolledUsers.FindIndex(x => x.Username.Equals((string)drUser["Username"], 
                                 StringComparison.OrdinalIgnoreCase)));

Herkes soruna işaret olabilir mi?

CEVAP
20 Aralık 2012, PERŞEMBE


Bu en iyi yöntem değildir .NET çerçeve (4 & ) eşitliği kontrol etmek için

String.Compare(x.Username, (string)drUser["Username"], 
                  StringComparison.OrdinalIgnoreCase) == 0

Bunun yerine aşağıdakileri kullanın

String.Equals(x.Username, (string)drUser["Username"], 
                   StringComparison.OrdinalIgnoreCase) 

MSDN recommends:

  • Dize aşırı kullanımı.İkinci yöntem olup olmadığını test etmek için eşittir dizeleri eşittir.
  • KullanımıString.KarşılaştırınveString.CompareTo dizeleri sıralamak için yöntemeşitlik kontrol etmek için değil.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Hollyscoop

    Hollyscoop

    30 Ocak 2007
  • MrOctopi

    MrOctopi

    6 Aralık 2010
  • Troy Hunt

    Troy Hunt

    29 EYLÜL 2011