在 C# 或 VBNET 中,我如何编写一个通用函数来将两个(或更多)列表连接到一个新的唯一列表中?
我见过列表类型的 Join 方法,但我不知道如何使用它,也不知道它是否可以一次加入多个列表(这就是为什么我要求一个通用函数 if Join方法不能完成这项工作)。
像这样的东西:
private function JoinLists(of T)(byval Lists() as list(of T)) as list(of T)
dim newlist as new list(of T)
' some LINQ method or a For + list.Join()...
return joinedlists
end function
更新:
我正在尝试使用 Anders Abel 的建议,但这不起作用:
Private Function JoinLists(Of T)(ByVal Lists() As List(Of T)) As List(Of T)
Dim newlist As New list(Of T)
For Each l As List(Of T) In Lists
newlist.Concat(l)
Next
Return newlist
End Function
Dim a As New List(Of String) From {"a", "b"}
Dim b As New List(Of String) From {"f", "d"}
Dim newlist As List(Of String) = JoinLists(Of String)({a, b})
MsgBox(newlist.Count) ' Result: 0 Expected: 3
For Each item In newlist
MsgBox(item) ' Any item is shown
'expected:
'a
'b
'f
'd
Next