2015-05-15 106 views

回答

4

这里有一个办法做到这一点:

var listOfListOfStrings = 
    new List<List<string>> {new List<string> {"one"}, new List<string> {"two"}}; 

var listOfStrings = new List<string>(); 

listOfStrings.AddRange(listOfListOfStrings.SelectMany(l => l)); 

或者只是:

var listOfStrings = listOfListOfStrings.SelectMany(l => l).ToList(); 
1

假设你只是想连接所有的列表,你可以使用LINQ使用SelectMany做到这一点:

Dim result As List(Of String) = source.SelectMany(Function(innerList) innerList).ToList() 
+1

这不会返回IEnumerable(Of String)而不是List(Of String())吗? – Ric

+0

@Ric是正确的,并且添加'.ToList'将使它成为'List(Of String)'。请注意'List(Of String)'是问题所要求的,而不是'List(Of String())'。 – hvd

+0

是的,我错过了.ToList。更新了答案。 – Richard

1

以下方法测试,它工作正常:

Dim newList As New List(Of String) 
For Each L In MyListOfList 
    newList.AddRange(L) 
Next 
+0

谢谢它的工作! – Dude

+0

欢迎您:) – Muhammad