2015-05-15 182 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