Lý do không sử dụng "==" để so sánh các chuỗi được bản địa hóa trong .NET là gì? Việc so sánh sẽ thực hiện như thế nào liên quan đến CultureInfo nếu tôi sử dụng nó?Tôi có nên sử dụng '==' cho các so sánh chuỗi địa phương hóa .NET không?
Trả lời
==
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
.
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)
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
+1 cho ví dụ. – Otiel
- 1. So sánh chuỗi trong .Net: "+" so với "-"
- 2. Tôi có nên sử dụng java.text.MessageFormat cho các thư được bản địa hóa mà không có trình giữ chỗ không?
- 3. chuỗi So sánh sử dụng '==' và 'là'
- 4. So sánh chuỗi, .NET và không gian phá vỡ
- 5. So sánh số có nhanh hơn so sánh chuỗi không?
- 6. Tôi có nên chọn == hoặc eq để so sánh chuỗi trong EL không?
- 7. php - Tôi có nên mã hóa địa chỉ email không?
- 8. Hãy so sánh một chuỗi Bash đen cho một biến địa phương
- 9. So sánh các chuỗi giống hệt cho tôi false
- 10. Tôi có thể sử dụng memcmp hai so sánh chuỗi ký tự nhiều byte không?
- 11. Bạn có nên sử dụng strcmp hoặc _tcscmp để so sánh các chuỗi trong phiên bản Unicode không?
- 12. Tôi nên sử dụng cấu trúc dữ liệu nào cho mã hóa địa lý?
- 13. Tôi có nên sử dụng HttpRuntime.Cache không?
- 14. phương pháp DateTime.TryParseExact để so sánh chuỗi
- 15. Khi nào tôi nên sử dụng chuỗi tuần tự hóa XML so với chuỗi tuần tự hóa nhị phân trong khuôn khổ .NET?
- 16. Tôi có thể so sánh các enums của MySQL không?
- 17. COLLATE được bản địa hoá trên so sánh chuỗi SQLite
- 18. Hai chuỗi so sánh bằng cách sử dụng '=' nhưng không thành công trong 'thích' so sánh
- 19. Java So sánh các địa chỉ
- 20. Có cần sử dụng === để so sánh các chuỗi trong Javascript hoặc là == đủ không?
- 21. Tôi nên sử dụng phương pháp nào cho C# scripting
- 22. Java: Địa phương hóa chuỗi tĩnh
- 23. Tôi có nên lưu chuỗi được NSLocalizedString() trả về không?
- 24. Chuỗi câu lệnh .NET C# switch so sánh với enum so sánh
- 25. Hãy so sánh hai chuỗi sử dụng Regex
- 26. Việc so sánh không dây với các chuỗi trong C#
- 27. Tôi có nên sử dụng jQuery.each() không?
- 28. chuỗi so sánh phần
- 29. Cách đúng để thực hiện So sánh miền địa phương
- 30. Tôi có nên chia các phương pháp để tái sử dụng trong JUnit không?
Bạn có hỏi về toán tử C# '==' không? Nếu vậy, bạn nên thêm thẻ C#. – phoog