2012-11-28 16 views
5

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

आईई "हैलो"

में पढ़ा क्या

List<string> (insert read string here) = new List<string>(); 

में पढ़ा गया था फिर जोड़ने एक शब्दकोश में कुंजी के रूप में नाम सूचीबद्ध करती है जो साथ सूची बनाएं।

Dictionary.Add(readstring, thatlist); 

सभी मैं मिल सकता है इस की एक हार्ड कोड कार्यान्वयन है।

Turing.Add("S", S); 

मेरा लक्ष्य: एक सार्वभौमिक ट्यूरिंग मशीन बनाने के लिए, तो मैं एक पाठ फ़ाइल अगले कदम है कि इस तरह दिखता है यह है कि से एक इनपुट में पढ़ा, (Q0 एक) -> q1 एक्स आर

फिर वर्चुअल टेप "टेप = XXYYZZBB"

पर मेरे द्वारा अंतिम छोर में समाप्त होने वाले सभी चरणों का उपयोग करें, इसके लिए मेरे पास छद्म कोड लिखा गया है लेकिन मैं बस काम करने के लिए शब्दकोश नहीं प्राप्त कर सकता।

संपादित करें: कम भ्रम के लिए कुछ और जानकारी जोड़ना। मैंने पाठ फ़ाइल की पहली 2 पंक्तियों के लिए प्रारंभ और अंत स्थिति दी। फिर मैंने संक्रमण दिए।

Q0 राज्य q5 // अंत राज्य शुरू // Q0 एक q1 XR // बदलाव

Ive इनपुट के पहले दो लाइनों छीन मुझे 0 देने के लिए और 5 फिर एक बनाने के लिए पाश के लिए एक बनाया है प्रत्येक राज्य की सूचियां।

for (int i = 0; i <= endState; i++) 
{ 
List<string> i = new List<string>(); 
} 

मैं फिर प्रत्येक सूचियों को नाम सूची के शब्दकोश के लिए एक कुंजी के रूप में जोड़ना चाहता हूं।

Dictionary.Add(listname, thatlist); 

मुझे ऊपर दिए गए त्रुटियों के रूप में उपरोक्त कोड को लागू करने में सहायता चाहिए।

+4

आपकी आवश्यकता को समझना बहुत मुश्किल है। –

+0

मैंने अपना प्रश्न अपडेट किया है। सहायता के लिए धन्यवाद। – MechaMan

उत्तर

7

इससे कोई फर्क नहीं पड़ता कि आप अपनी सूची बनाने के रूप में

List<string> insertReadStringHere = new List<string>(); 

या

List<string> foo = new List<string>(); 

या यहाँ तक कि

List<string> shellBeComingRoundTheMountain = new List<string>(); 

क्या महत्वपूर्ण है कि एक बार आप

किया है
MyDictionary.Add(theInputString, shellBeComingRoundTheMountain); 

आप तो के माध्यम से

MyDictionary[theInputString] 

कि विशेष रूप से सूची का उपयोग कर सकते wherether प्रारंभिक सूची insertReadStringHere या foo या shellBeComingRoundTheMountain "कहा जाता है" था।

तुम भी इस तरह की एक नामित चर में सूची धारण करने के लिए जरूरत नहीं है। उदाहरण के लिए,

Console.WriteLine("Input a string to create a list:"); 
var createListName = Console.ReadLine(); 
// As long as they haven't used the string before... 
MyDictionary.Add(createListName, new List<string>()); 

Console.WriteLine("Input a string to retrieve a list:"); 
var retrieveListName = Console.ReadLine(); 
// As long as they input the same string... 
List<string> retrievedList = MyDictionary[retrieveListName]; 

संपादित करें:

int maxNumberOfLists = 5; // or whatever you read from your text file. 
Dictionary<int, List<string>> myLists = 
      new Dictionary<int, List<string>> (maxNumberOfLists); 
for (int i = 1; i <= maxNumberOfLists; i++) 
    myLists[i] = new List<string>(); 

तब आप अपनी सूची का उपयोग कर सकते हैं: आप सूचियों की एक निश्चित संख्या चाहते हैं, एक dictionarym पूर्णांक से स्ट्रिंग के लिए, स्ट्रिंग के लिए स्ट्रिंग नहीं apping का उपयोग उदाहरण के लिए

var firstList = myLists[1]; 

आमतौर पर मैं एक सरणी की सलाह देते हैं, लेकिन यह करने के लिए 5 1 के बजाय 0 से 4 से आप सूचियों देता है और ऐसा लगता है कि तुम क्या चाहते हो।

+0

तो मैं प्रत्येक संख्यात्मक मान 1, 2, ... की एक सूची बनाने की कोशिश कर रहा हूं, जहां मैं जिस पाठ फ़ाइल में पढ़ रहा हूं वह मुझे अधिकतम राज्य देता है। तो कहें कि टेक्स्ट फ़ाइल में 5 अधिकतम राज्य हैं, मैं प्रत्येक संख्यात्मक संख्या 1, 2, 3, ... आदि के लिए एक सूची बनाना चाहता हूं। (int i = 0; i <= endState; i ++) { सूची i = नई सूची (); } – MechaMan

+0

@MechaMan मैंने कुछ कोड जोड़ दिए हैं यदि आप अपनी सूचियों को संख्या से एक्सेस करना चाहते हैं। – Rawling

+0

यह काम किया !! आपकी सहायता के लिए बहुत - बहुत धन्यवाद। – MechaMan

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