2009-08-04 37 views
21

Tôi có hai bộ đối tượng trong một số trường hợp, tập đầu tiên sẽ được sử dụng làm khóa cho bộ còn lại và trong các trường hợp khác, bộ thứ hai sẽ được sử dụng làm khóa cho lần đầu tiên. Ngoài ra, không phải trùng lặp trong danh sách.Từ điển hai chiều?

Cấu trúc dữ liệu tốt để sử dụng cho điều này là gì? Tôi có nên sử dụng hai Từ điển cho điều này hoặc có cách nào thông minh hơn không?

+4

Có một triển khai từ điển hai chiều bởi Jon Skeet @ http://stackoverflow.com/questions/255341/getting-key-of-value-of- a-generic-dictionary # 255630. Và có, cách tiêu chuẩn để đạt được điều này là sử dụng 2 từ điển. – Falaina

Trả lời

8

Ai đó có kiến ​​thức tốt hơn về cấu trúc dữ liệu có thể có thể đưa ra lời khuyên tốt hơn, nhưng cá nhân, tôi muốn sử dụng 2 từ điển để dễ sử dụng. Bạn có thể làm tương tự với 1 từ điển nhưng thời gian truy cập sẽ tăng lên.

Sửa: tào lao, tôi đã được chỉ là trong quá trình viết lên một số mã như thế nào tôi sẽ làm điều đó và tôi thấy rằng Falaina posted này là ý tưởng tương tự mà tôi đang làm chỉ tốt hơn nhiều: Getting key of value of a generic Dictionary?

+0

O, hay. Sẽ chấp nhận điều này như là câu trả lời trong câu hỏi này sau đó :) – Svish

2

Điều này thường được gọi là bản đồ hai chiều. Nếu bạn không thích PowerCollections, có triển khai tùy chỉnh tại đây: Bidirectional 1 to 1 Dictionary in C#

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