2009-08-04 2 views
21

मेरे पास ऑब्जेक्ट्स के दो सेट हैं जहां कुछ मामलों में पहला सेट दूसरे सेट के लिए चाबियों के रूप में उपयोग किया जाएगा, और अन्य मामलों में दूसरे सेट को पहले के लिए चाबियों के रूप में उपयोग किया जाएगा। इसके अलावा किसी भी सूची में कोई डुप्लीकेट नहीं होना चाहिए।द्वि-दिशात्मक शब्दकोश?

इसके लिए उपयोग करने के लिए एक अच्छी डेटा-संरचना क्या होगी? क्या मुझे इसके लिए दो शब्दकोशों का उपयोग करना चाहिए या क्या स्मार्ट तरीके हैं?

+4

जॉन स्कीट @ http://stackoverflow.com/questions/255341/getting-key-of-value-of- द्वारा एक बिडरेक्शनल डिक्शनरी कार्यान्वयन है। एक जेनेरिक-शब्दकोश # 255630। और हां, इसे प्राप्त करने का मानक तरीका 2 शब्दकोशों का उपयोग करना है। – Falaina

उत्तर

8

डेटा संरचनाओं के बेहतर ज्ञान वाले किसी व्यक्ति को शायद बेहतर सलाह दे सकती है, लेकिन व्यक्तिगत रूप से, मैं आसानी से उपयोग के लिए 2 शब्दकोश का उपयोग करूंगा। आप 1 शब्दकोश के साथ ऐसा ही कर सकते हैं लेकिन पहुंच का समय बढ़ जाएगा।

संपादित: बकवास, मैं सिर्फ कुछ कोड लिख मैं इसे कैसे करना होगा करने की प्रक्रिया में था और मैंने देखा कि Falaina इस जो एक ही विचार है कि मैं केवल कर रहा था बेहतर है पोस्ट: Getting key of value of a generic Dictionary?

+0

ओ, अच्छा। इस सवाल में जवाब के रूप में इसे स्वीकार करेंगे :) – Svish

1

वहां कुछ मल्टीकी संग्रह हैं। प्रयास करें:

http://powercollections.codeplex.com/

या

http://www.codeproject.com/KB/recipes/multikey-dictionary.aspx

Wintellect की शक्ति संग्रह शायद एक महान जगह शुरू करने के लिए कर रहे हैं। उनके पास उनके पैकेज के हिस्से के रूप में एक परीक्षण मल्टी डिक्शनरी है।

2

इसे आमतौर पर एक द्विपक्षीय मानचित्र कहा जाता है। यदि आपको पावरकोलेक्शन पसंद नहीं हैं, तो यहां एक कस्टम कार्यान्वयन है: Bidirectional 1 to 1 Dictionary in C#

संबंधित मुद्दे