2012-11-28 14 views
5

リストの辞書を作成しようとしていますが、文字列を読み込んでいて、リストに名前を付けて辞書にキーとして追加する必要があります。リストの辞書

IEはその後、辞書のキーとして名を一覧表示している追加

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

で読み取ったものとリストを作成し、「こんにちは」

を読み込みます。

Dictionary.Add(readstring, thatlist); 

私は見つけることができるすべては、このハードコードの実装です。

Turing.Add("S", S); 

私の目標:ユニバーサルチューリングマシンを作成するので、私はこのようになり、次のステップであるテキストファイルから入力を読み込む、(Q0 A) - > Q1 X R.

その後、私が読み込んだすべての手順を使って、最終的な状態でこれを仮想テープ "tape = XXYYZZBB"で終了します。

私はこのために書かれた擬似コードを持っていますが、

編集: 混乱を少なくするためにいくつかの情報を追加してください。 テキストファイルの最初の2行の開始と終了の状態が与えられました。それから私は移行を与えられました。

Q0 //開始状態 Q5 //終了状態 Q0 Q1のXR //遷移

アイブ氏は私に0を与えるために、入力の最初の2行を剥奪し、5その後、作成するforループを作成しました各状態のリスト。

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); 

初期リストがinsertReadStringHereまたはfooshellBeComingRoundTheMountain「と呼ばれた」wheretherあなたはその後、

MyDictionary[theInputString] 

を経由して、特定のリストにアクセスすることができます。

このように名前付き変数にリストを保持する必要はありません。例えば、

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型からapping dictionarymを使用し、ない文字列に文字列:

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>(); 

次に、あなたのリストにアクセスすることができます例えば

var firstList = myLists[1]; 

通常は配列をお勧めしますが、これは0から4ではなく1から5のリストを提供します。

+0

私は各数値のリストを作成しようとしています1,2、... nここで私が読んでいるテキストファイルは、私には最大の状態を与えます。だから、テキストファイルが5つの最大状態を持っていて、それぞれの数値1,2,3、...などのリストを作成したいとします。 for(int i = 0; i <= endState; i ++) { リスト i = newリスト(); } – MechaMan

+0

@MechaMan番号でリストにアクセスしたい場合は、いくつかのコードを追加しました。 – Rawling

+0

それは働いた!助けてくれてありがとう。 – MechaMan