2016-05-11 7 views
-3

次のコードを持つファイルを読み込み、[START]と[STOP]タグの間のデータを辞書に追加します。私はC#でかなり新しいです。私はこれをどうやってするのか分からない。2つの文字列の間のデータを辞書に入れます

XXXXX 
XXX 
XXX 
[start] 
XXXXXXXXXXXX 
[STOP] 
XXXX 
XXXXX 
[start] 
XXXXXXXXXXXX 
[STOP] 
XXXX 
XXXXX 
+0

私たちは助けてくれることをうれしく思いますが、あなた自身で何かをする必要があります。 – AntiTcb

+0

辞書には、キーと値が必要です。どの部分がすべきか?文字列関数 '' string ".indexOf(" ... ")'と '' string ".substring(...)'関数を参照してください – Sammy

+0

同じ行の開始停止領域が2つあります。重複を許さないディクショナリに追加したいので、何を達成しようとしていますか?キーとは何ですか、また価値は何ですか?重複はどうなりますか? –

答えて

0

キーは行番号と開始文字列の間の文字列です&は停止しますか?ここには1つの方法があります:

var dict = new Dictionary<int, List<string>>(); 
string[] allLines = File.ReadAllLines(path); 
List<string> currentLineRange = null; 
bool inRange = false; 
int rangeStart = 0; 

for (int i = 0; i < allLines.Length; i++) 
{ 
    string line = allLines[i]; 
    if (!inRange && line.Equals("[START]", StringComparison.InvariantCultureIgnoreCase)) 
    { 
     inRange = true; 
     rangeStart = i; 
     currentLineRange = new List<string>(); 
    } 
    else if(inRange) 
    { 
     if (line.Equals("[STOP]", StringComparison.InvariantCultureIgnoreCase)) 
     { 
      inRange = false; 
      dict.Add(rangeStart, currentLineRange); 
     } 
     else 
     { 
      // in range, add all lines 
      currentLineRange.Add(line); 
     } 
    } 
} 
+0

ありがとうTim。出来た。 –

関連する問題