如何将列表集合添加到列表中?

时间:2015-01-20 12:37:17

标签: c# asp.net-mvc razor

我有我的代码,

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

我无法将列表添加到另一个列表中。请告诉我在这种情况下该怎么做。

4 个答案:

答案 0 :(得分:2)

如果您需要List List,那么您的QuestionSetList必须是:

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

考虑创建自定义类型,否则它有点像开始,在列表中的列表中列出列表.........

或者如果你真的想合并 Lists,那就使用Concat

list1.Concat(list2);

答案 1 :(得分:2)

查看Concat命名空间

中的System.Linq函数

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

答案 2 :(得分:1)

您应该尝试使用AddRange,它允许将一个集合添加到List

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

答案 3 :(得分:0)

model.QuestionSetList是一个字符串列表。 您正在尝试向其添加字符串列表。由于它们的类型不兼容,因此不允许您这样做。

尝试制作model.QuestionSetList a List<List<string>>并查看是否对您有帮助。