2012-06-13 20 views
6

मैं शब्दकोशों के लिए बहुत नया हूं। बहुत नया अर्थ है कि मैंने उन्हें लगभग 6 घंटे पहले उपयोग करना शुरू किया: पी। वैसे भी, मैं जानना चाहता हूं कि शब्दकोश की कुंजी बदलने का कोई तरीका है या नहीं।एक शब्दकोश की कुंजी बदलना

यहाँ मेरी शब्दकोश है:

Dictionary<string, string> Information = new Dictionary<string, string>(); 

यहाँ है कि कैसे मैं शब्दकोश में जोड़ा जा रहा है (यह हर बार उपयोगकर्ता की जानकारी में प्रवेश करती है और एक बटन दबाता निकाल दिया जाता है:

Information.Add(txtObjectNumber.Text, addressCombined); 

उपयोगकर्ता की जरूरत है दोनों फ़ील्ड को संपादित करने के साथ-साथ पूरे रिकॉर्ड को हटाने में सक्षम होने के लिए।

तो बहुत अधिक एप्लिकेशन को txtNumber और txtComments डब्ल्यू जोड़ने की आवश्यकता है यहां txtNumber = txtObjectNumber

आपकी सहायता के लिए धन्यवाद।

+0

आपके कोड में 'txtNumber' और' txtComments' कहां दिखाई देते हैं? क्या आप वाकई दो वस्तुओं (या अधिक) मानों को संग्रहीत करने वाली वस्तुओं की सूची के बजाय एक शब्दकोश का उपयोग करना चाहते हैं? –

+3

आप शायद सही डेटा संरचना का उपयोग नहीं कर रहे हैं। – Oded

+0

खेद है कि वे केवल टेक्स्टबॉक्स हैं जो उपयोगकर्ता डेटा दर्ज कर सकते हैं। मुझे निश्चित रूप से और स्पष्ट होना चाहिए था। – JLott

उत्तर

3

कुंजी वह तंत्र है जो आपको डेटा ("मूल्य") बाद में खोजने की अनुमति देगा।

उदाहरण के लिए

, अगर तुमने किया था

information.Add("Kris", "Vandermotten"); 

आप यदि आप जानते हैं "क्रिस" बाद में "Vandermotten" खोजने के लिए वापस कर सकेंगे।

अब उस संदर्भ में, "क्रिस" के रूप में क्या मतलब है? आपने डेटा "क्रिस" नाम से रखा है और इसे "बॉब" के लिए खोजना चाहते हैं? आपको यह नहीं मिलेगा।

एक तरह से, कुंजीपटल कुंजी एक संबंधपरक डेटाबेस में प्राथमिक कुंजी की तरह बहुत अधिक है। मूल्य की तार्किक पहचान का संदर्भ लें। तो एक बात के लिए, उन्हें विशिष्ट रूप से पहचानना चाहिए।

तो शायद यह उदाहरण समझ में नहीं आता है। हो सकता है कि

information.Add(42, new Person("Kris", "Vandermotten") 

अधिक समझ में आता है। सवाल तो निश्चित रूप से है: 42 क्या है? कभी-कभी ऐसी कुंजी के लिए एक प्राकृतिक उम्मीदवार होता है, जैसे कर्मचारी संख्या या कुछ, कभी-कभी नहीं होता है।

जब कोई नहीं है, हो सकता है आप

List<Person> information = new List<Person>(); 

information.Add(new Person("Kris", "Vandermotten")); 

और निश्चित रूप से ऐसा करने के लिए, एक व्यक्ति वस्तु पहला नाम संपत्ति को बदलने की अनुमति देता है की जरूरत है, और है कि आप क्या करने की यह करना क्या चाहते हैं, तो है। लेकिन "शब्दकोश कुंजी बदलना" मुझे बहुत समझ में नहीं आता है।

+0

मैं आपका उदाहरण पढ़ रहा था और ऐसा था, उसे कहां से "वांडर्मोटेन" मिला। तब मैंने अंत में आपका नाम देखा। मेरा एकमात्र विचार था, भयानक नाम। – DidIReallyWriteThat

+0

@ कैल्विनस्मिथ धन्यवाद। मेरे पिता ने मुझे यह दिया। मैं आपकी टिप्पणी पास कर दूंगा। ;-) –

10

सीधे कुंजी को संशोधित करना संभव नहीं है। आपको इसे हटाना होगा और इसे फिर से जोड़ना होगा।

0

आप मौजूदा डिक्शनरी आइटम की कुंजी नहीं बदल सकते हैं। आप क्या कर सकते हैं पिछली कुंजी हटाएं और संपादन के आधार पर एक नई कुंजी/मान जोड़ें।

उदाहरण उपयोग के मामले:

जोड़ें कुंजी: नाम, मान: बॉब

अब आप FirstName को Name बदलना चाहते हैं, तो आप

करने के लिए निकालें कुंजी Name dictionnary से कुंजी जोड़ें होता : फर्स्टनाम, वैल्यू: बॉब

0

यहां एक शब्दकोश का उपयोग थोड़ा सा लगता है। नाम की तरह सुझाव देते हैं, शब्दकोश का उद्देश्य आपको कुंजी के आधार पर मूल्य को "देखने" का तरीका प्रदान करना है। हालांकि, आपके मामले में, आप डेटा के दो संबंधित टुकड़ों को स्टोर करने के लिए इसका उपयोग कर रहे हैं, जिनमें से कोई भी बदल सकता है। उस स्थिति में, आप शायद एक सूची का उपयोग करके बेहतर हो सकते हैं, और एक अलग वर्ग बना सकते हैं जो जानकारी के दोनों टुकड़ों को समाहित करता है।

Dictionary<string, MyData> myDataDictionary; 
:

public class MyData 
{ 
    public string SomeData { get; set; } 
    public string OtherData { get; set; } 
} 

और फिर

List<MyData> myDataList; 

या, आप भी एक शब्दकोश है कि कस्टम वर्ग के लिए एक गैर-बदलते कुंजी (शायद एक प्रयोक्ता आईडी) नक्शे के लिए चाहते हो सकता है की तरह कुछ

1

आप अपने शब्दकोश के लिए अंतर्निहित निकालें() विधि का उपयोग कर सकते हैं। या आप संग्रह के माध्यम से इसे फिर से कठिन तरीके से कर सकते हैं। हालांकि मैं उत्सुक हूं कि आपको कुंजी को लगातार अद्यतन करने की आवश्यकता क्यों होगी, न केवल मूल्यों को।

+0

मुझे दोनों को करने की आवश्यकता है। बहुत अधिक चाबियां पानी मीटर उत्पाद संख्याएं हैं। जब किसी को प्रतिस्थापित किया जाता है तो उत्पाद कुंजी बदल जाएगी और टिप्पणियां बदल सकती हैं या नहीं भी हो सकती हैं। पते को वही रहने की आवश्यकता होगी हालांकि। – JLott

+0

ऐसा लगता है कि आपको एक शब्दकोश <पता, उत्पाद संख्या> और एक शब्दकोश <पता, टिप्पणी सूची> –

+0

डांग की आवश्यकता है ... मैं उस हाहा के बारे में क्यों नहीं सोचा था। धन्यवाद, आपने मुझे बहुत सारी चीज़ें बदलने से बचाया है। यह थोड़ा गन्दा हो सकता है, लेकिन यह हाहा काम करना चाहिए। – JLott

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