2016-04-28 21 views
0

辞書内のキーに追加する文字列の値が変化します。辞書内のリストにさまざまな文字列値を追加する

What is the correct answer(key) 
AnswerA(value) 
AnswerB(value) 
AnswerC(value) 

私はこれをループ上で起こる文字列の分割を使用して行います。

string[] arr = l.ContentDescription.Split('|').ToArray(); 
Dictionary<string, List<string>> questions = new Dictionary<string, List<string>>(); 

for (int i = 0; i < arr.Length - 1; i++) 
{ 
    var arrB = arr[i + 1].Split('*').ToArray(); 
    //all theanswers should now be added to the list 
    questions.Add(arrB[0], new List<string>() { }); 
} 

ARRは、彼らが長

+1

たぶん 'questions.Add(arrB [0]、arrB.Skip(1).ToList());' ? –

答えて

2

が異なる場合は、この

Choose the correct answer and submit|What is the correct answer*AnswerA*AnswerB*AnswerC 

のようなものは、これらの回答値を追加する最良の方法は何ちょうどあなたの配列(のLINQ)の最初の要素をスキップになります。

questions.Add(arrB[0], arrB.Skip(1).ToList()); 
1

私がコメントで述べたように、速い解決策は、tと同じようにSkipを使用することです彼:ここ

questions.Add(arrB[0], arrB.Skip(1).ToList()); 

は、私はLINQでそれをすべて行うだろうかです:

var questions = 
    l.ContentDescription 
    .Split('|') 
    .Skip(1) //get rid of "Choose the correct answer and submit" 
    .Select(x => x.Split('*')) 
    .ToDictionary(x => x[0], x => x.Skip(1).ToList()); 
関連する問題