Tôi có danh sách lưu trữ một số đối tượng hay không. Mỗi đối tượng có một thuộc tính dưới dạng một biến.Cấu trúc dữ liệu nhanh nhất để kiểm tra xem một thuộc tính trong danh sách đối tượng có khớp với
Tôi muốn kiểm tra xem có bất kỳ mục nào trong danh sách này có chứa thuộc tính nhất định hay không. Tương tự như phương thức ContainsKey của Dictionary. Cấu trúc dữ liệu này là để giữ một số lượng cực lớn các giá trị, thậm chí có thể hàng triệu và do đó tôi muốn sử dụng một cấu trúc dữ liệu có thể kiểm tra các thuộc tính càng nhanh càng tốt.
Từ điển sẽ là nhanh nhất cho công việc này hoặc có cấu trúc dữ liệu nhanh hơn không?
EDIT:
Dưới đây là một cách nhanh chóng, ví dụ nhỏ về những gì tôi muốn đạt được:
Dictionary<string, Person> persons = new Dictionary<string, Person>(); //where string contains the Person's name
bool isPresent = persons.ContainsKey("Matt");
Hàng triệu bản ghi này đến từ đâu? An IEnumerable so với nguồn dữ liệu để * truy vấn * dữ liệu là nhanh nhất. Tải hàng triệu bản ghi vào bộ nhớ là không thực tế. Hãy để cơ sở dữ liệu/NOSQL thực hiện việc nâng hạng nặng thông qua LINQ. –
tawman
Bạn có biết loại và thuộc tính trước không. I E. Bạn có đang thử nghiệm các đối tượng "Đặt hàng" cho thuộc tính "Vùng" không? Hoặc là nó là một đối tượng không rõ cho một tài sản cố định tên? Hoặc nó có thể sử dụng năng động? Hoặc nếu thành viên không cố định, có thể là FastMember? Hoặc là...? Hoặc là...? Vui lòng thêm một ví dụ ... –
@tawman: Có hàng triệu bản ghi trong bộ nhớ có thể * hoàn toàn * thực tế (và nhanh chóng) tùy thuộc vào kích thước của bản ghi. Trong một công việc trước đây, tôi quản lý để tăng hiệu suất * cực kỳ * bằng cách chuyển đổi mã đang thực hiện tra cứu trong bảng cơ sở dữ liệu thành một bảng trong bộ nhớ, được điều chỉnh để giảm mức sử dụng bộ nhớ. Tất cả đều phụ thuộc vào ngữ cảnh. –