Tôi cần danh sách phân biệt chữ hoa chữ thường hoặc loại bộ sưu tập (của chuỗi). Cách dễ nhất để tạo một cái là gì? Bạn có thể chỉ định loại so sánh bạn muốn nhận trên các khóa của một Từ điển, nhưng tôi không thể tìm thấy bất kỳ thứ gì tương tự cho một Danh sách.Danh sách phân biệt chữ hoa chữ thường
Trả lời
Hình như có thể của nó để tận dụng lớp KeyedCollection:
public class Set<T> : KeyedCollection<T,T>
{
public Set()
{}
public Set(IEqualityComparer<T> comparer) : base(comparer)
{}
public Set(IEnumerable<T> collection)
{
foreach (T elem in collection)
{
Add(elem);
}
}
protected override T GetKeyForItem(T item)
{
return item;
}
}
Giả sử bạn đang sử dụng .NET 3.5, bạn chỉ có thể sử dụng:
var strings = new HashSet<string>(StringComparer.InvariantCultureIgnoreCase);
... hoặc một cái gì đó tương tự, nơi bạn muốn chọn nền văn hóa thích hợp thiết lập là tốt.
Danh sách không thực sự có ý tưởng so sánh nhiều nhất - chỉ khi bạn gọi IndexOf
và các phương pháp liên quan. Tôi không tin rằng có bất kỳ cách nào để chỉ định so sánh để sử dụng cho điều đó. Tuy nhiên, bạn có thể sử dụng List<T>.Find
với biến vị ngữ.
Câu chuyện tương tự tại đây, nơi tìm cách kiểm tra contains
ví dụ:
public static bool Contains(this string source, string toCheck, StringComparison comp)
{
return source.IndexOf(toCheck, comp) >= 0;
}
Sử dụng LINQ, điều này cho biết thêm một phương pháp mới để .Compare
using System.Linq;
using System.Collections.Generic;
List<string> MyList = new List<string>();
MyList.Add(...)
if (MyList.Contains(TestString, StringComparer.CurrentCultureIgnoreCase)) {
//found
}
Bạn không cần 'LINQ' để sử dụng phương thức Chứa –
@ geo1701: nhưng bạn ** cần ** 'bằng cách sử dụng System.Linq' để tải quá tải mới bằng' StringComparer'! –
Cảm ơn, câu trả lời hay, tôi đã hy vọng có một phần mở rộng, thay vì phải tự viết. Nếu không tôi sẽ không biết nơi để tìm! – Abacus
var Addresses = Pr.Where(a = >a.Key.ToUpper() == "KEY VALUE").ToList();
Chỉ cần chắc phím của bạn chữ hoa và tìm kiếm UPPERCASE VALUE
Đây chính là bản hack tôi muốn tránh. – Grzenio
- 1. Tìm kiếm danh sách phân biệt chữ hoa chữ thường
- 2. phân loại danh sách phân biệt chữ hoa chữ thường, mà không làm giảm kết quả?
- 3. Khớp mẫu không phân biệt chữ hoa chữ thường trên các danh sách chuỗi
- 4. Danh sách bộ lọc Jquery không phân biệt chữ hoa chữ thường
- 5. Sắp xếp danh sách các bộ dữ liệu không có phân biệt chữ hoa chữ thường
- 6. Java có phân biệt chữ hoa chữ thường không?
- 7. GetElementsByTagName không phân biệt chữ hoa chữ thường?
- 8. GetMethod không phân biệt chữ hoa chữ thường?
- 9. Đường dẫn XML - không phân biệt chữ hoa chữ thường
- 10. Tên tệp không phân biệt chữ hoa chữ thường?
- 11. Loại.Không phân biệt chữ hoa chữ thường - WinRT
- 12. Tìm kiếm phân biệt chữ hoa chữ thường với $ trong
- 13. GSON deserialize theo cách phân biệt chữ hoa chữ thường
- 14. Đối sánh phân biệt chữ hoa chữ thường trong Marpa
- 15. JavaScript: tìm kiếm phân biệt chữ hoa chữ thường
- 16. URL không phân biệt chữ hoa chữ thường với mod_rewrite
- 17. Hàm in_array không phân biệt chữ hoa chữ thường
- 18. Tìm kiếm phân biệt chữ hoa chữ thường trong grails
- 19. OData và phân biệt chữ hoa chữ thường
- 20. khớp với phân biệt chữ hoa chữ thường trong xpath?
- 21. Cột chuỗi phân biệt chữ hoa chữ thường trong SQLAlchemy?
- 22. không phân biệt chữ hoa chữ thường số
- 23. Tên bảng có phân biệt chữ hoa chữ thường không?
- 24. Không phân biệt chữ hoa chữ thường không hoạt động
- 25. Không phân biệt chữ hoa chữ thường với Dynamic Linq
- 26. AngularJs, bộ lọc phân biệt chữ hoa chữ thường
- 27. Biến Bash: phân biệt chữ hoa chữ thường hay không?
- 28. DISTINCT MySQL phân biệt chữ hoa chữ thường
- 29. Kết hợp mẫu Lua phân biệt chữ hoa chữ thường
- 30. Trường hợp Rspec không phân biệt chữ hoa chữ thường
Tôi bị kẹt với .Net 2 thật đáng buồn: ( – Grzenio