2015-01-20 6 views
1

내가 좋아하는 내 코드,목록에 컬렉션을 추가하는 방법은 무엇입니까?

List<string> list = new List<string>(); 
model.QuestionSetList = new List<string>(); 
for (int i = 0; i < response.QuestionsInfoList.Count(); i++) 
{ 
    list.Add(response.QuestionSetInfo.QuestionsInfoList[i].Question); 
    foreach (AnswerSetContract answerSetContract in response.QuestionsInfoList[i].AnswersInfoList) 
    { 
     list.Add(answerSetContract.AnswerText); 
    } 
    model.QuestionSetList.Add(list) 
} 

나는이 경우에는 무엇을 말해 다른 list.Kindly에 목록을 추가 할 수 있습니다. 당신이 ListList의의를 원하는 경우에

+0

에 컬렉션을 추가 할 수 있습니다/어디 당신이 코드에 점점 오류? –

+0

아래 model.QuestionSetList.Add (목록). 오류 발생 " 'system.collections.generic.list '에 가장 적합한 오버로드 된 메소드에 잘못된 인수가 있습니다. –

+3

오류는 'model.QuestionSetList.Add (list)'입니다. 'AddRange' (추가 된리스트를 평평하게 만들 것입니다)로'Add'를 대체하거나'QuestionSetList'의 타입을리스트리스트로 바꿀 수 있습니다. –

답변

2

using System.Linq; 

List<string> list = new List<string>(); 
model.QuestionSetList = new List<string>(); 
for (int i = 0; i < response.QuestionsInfoList.Count(); i++) 
{ 
    list.Add(response.QuestionSetInfo.QuestionsInfoList[i].Question); 
    foreach (AnswerSetContract answerSetContract in response.QuestionsInfoList[i].AnswersInfoList) 
    { 
     list.Add(answerSetContract.AnswerText); 
    } 
    model.QuestionSetList = model.QuestionSetList.Concat(list); 
} 

하지만 왜? list.Add(answerSetContract.AnswerText);model.QuestionSetList에 직접 추가 하시겠습니까?

이렇게하면됩니다.

List<string> list = new List<string>(); 
model.QuestionSetList = new List<string>(); 
for (int i = 0; i < response.QuestionsInfoList.Count(); i++) 
{ 
    list.Add(response.QuestionSetInfo.QuestionsInfoList[i].Question); 
    foreach (AnswerSetContract answerSetContract in response.QuestionsInfoList[i].AnswersInfoList) 
    { 
     model.QuestionSetList.Add(answerSetContract.AnswerText); 
    } 
} 
+0

좋습니다! 그것이 도움이된다면 대답으로 받아 들여주세요! :) –

+0

제발 말해줘, 차이점은 무엇입니까, model.QuestionSetList.AddRange (list); 및 model.QuestionSetList.Concat (목록); –

+2

가장 큰 차이점은'AddRange'는 'list'의 항목을 (모델의 원래 목록 인)'model.QuestionSetList'에 추가하는 반면'Concat'는 두 목록의 값으로 새로운 목록을 생성한다는 것입니다. –

2

, 다음 QuestionSetList가 될 것이다 :

model.QuestionSetList = new List<List<<string>>() 

그렇지 않으면 처음과 같은 비트가 목록에있는 목록에서 목록입니다,하지만 사용자 정의 형식을 만드는 고려 목록 .........

아니면 실제로 하고자하는 경우Lists을 결합 후 Concat을 사용

네임 스페이스

즉 내 Concat 기능에 83,

+0

'Concat'가 새로운 목록을 반환한다는 것을 기억하십시오. (현재 양식의) 예제는별로 효과가 없을 것입니다. 그러나 더 좋은 예는'list1 = list1.Concat (list2)'일 수 있습니다. 'AddRange' 만 (IMO) 난독 화되었습니다. OP가 새 * 목록을 원한다면 'Concat'이 좋은 선택이 될 것입니다. – Default

0

model.QuestionSetList는 문자열 목록입니다. 문자열 목록을 추가하려고합니다. 유형이 호환되지 않으므로 그렇게 할 수 없습니다.

model.QuestionSetList를 List<List<string>>으로 만들어보고 도움이되는지 확인해보십시오.

1
당신은 AddRange으로 시도해야

, 그것은 목록 무엇

http://msdn.microsoft.com/en-us/library/z883w3dc.aspx

+0

을 사용하는 방법에 대한 예를 추가 할 수 있습니까? 그런 식으로 어떻게 사용되는지 궁금해하는 사람들은 새로운 페이지를 방문하지 않고 여기에서 읽을 수 있습니다. – Default

관련 문제