2011-11-17 30 views

Trả lời

10

== không nhạy cảm về văn hóa - đó là so sánh thứ tự đơn giản. Vì vậy, hai chuỗi văn hóa bằng nhau - hoặc thậm chí bằng nhau về các dạng chuẩn tắc khác - có thể không phải bằng nhau qua ==. Về cơ bản, nó xử lý từng chuỗi như một mảng char.

10

Quá tải String.operator == sẽ thực hiện so sánh thứ tự không biết văn hóa – so sánh các byte theo byte bằng cách sử dụng heavily optimized unrolled loop.
Gọi hàm bên trong giống như String.Equals(a, b, StringComparison.Ordinal)

14

Nếu bạn so sánh chuỗi nhận biết văn hóa với ==, ví dụ "Strasse" với "Straße", nó trả về false.

Nếu bạn cần so sánh nhận thức về văn hóa cho giao diện người dùng (Sắp xếp danh sách xem), bạn sử dụng String.Compare với CultureInfo có liên quan.

CultureInfo ci = new CultureInfo("de-DE"); 
String.Compare("Strasse", "Straße", true, ci) // Returns zero 
+3

+1 cho ví dụ. – Otiel

Các vấn đề liên quan