Tôi có 60k mục cần được kiểm tra trong danh sách tra cứu 20k. Có một đối tượng bộ sưu tập (như List
, HashTable
) cung cấp phương pháp đặc biệt nhanh chóng Contains()
không? Hoặc tôi sẽ phải viết của riêng tôi? Trong các từ khác, phương thức mặc định là Contains()
chỉ quét từng mục hoặc sử dụng thuật toán tìm kiếm tốt hơn.Bộ sưu tập .NET nào cung cấp tìm kiếm nhanh nhất
foreach (Record item in LargeCollection)
{
if (LookupCollection.Contains(item.Key))
{
// Do something
}
}
Lưu ý. Danh sách tra cứu đã được sắp xếp.
Chứa Danh sách không hoạt động đối với danh sách đối tượng vì nó so sánh các tham chiếu. – Fiur
Dữ liệu được sắp xếp? Tìm kiếm nhị phân - xem câu trả lời của @ Mark. –
HashtTable đánh bại bất cứ thứ gì lên đến 2m trong kinh nghiệm của tôi –