将列表添加到vb.net中的另一个列表中

时间:2012-02-28 08:28:18

标签: vb.net list

我有一个如下列表,我想将其添加到另一个列表中:

Dim listRecord As New List(Of String)
listRecord.Add(txtRating.Text)
listRecord.Add(txtAge.Text)
listRace.Add(listRecord)  

获得类似{{r1,a1},{r2,a2},{r3,a3}}的东西,如何在VB.Net中实现这一目标?

3 个答案:

答案 0 :(得分:11)

您可以使用列表AddRange

listRace.AddRange(listRecord)

或Enumerable' Concat

Dim allItems = listRace.Concat(listRecord)
Dim newList As List(Of String) = allItems.ToList()

如果你想消除重复项,请使用Enumerable' Union

Dim uniqueItems = listRace.Union(listRecord)

AddRangeConcat之间的差异是:

  • Enumerable.Concat生成一个新序列(实际上,由于Concat延迟执行,它实际上并不会立即生成它,它更像是一个查询)并且您必须使用ToList从中创建新列表。
  • List.AddRange将它们添加到同一个List,因此修改了原始版本。

答案 1 :(得分:5)

我假设您想要嵌套列表,而不是简单地将一个列表附加到另一个列表的末尾?

Dim listRecord As New List(Of String)
listRecord.Add(txtRating.Text)
listRecord.Add(txtAge.Text)
listRace.Add(listRecord)

Dim records as new List(of List(of String))
records.Add(listRecord)

希望这有帮助

<强>更新
阅读它们就像访问任何其他列表一样 获取第一个记录中的第一个字段

return records(0)(0)

第一条记录中的第二个字段

return records(0)(1)
等等。 。

答案 2 :(得分:1)

我一直在寻找同样的问题,我找到了解决方案。我认为这正是你想要的(要设置列表项内联,而不是使用List(of())类的函数):

Dim somelist As New List(Of List(Of String)) From {New List(Of String) From {("L1 item1"), ("L1 item2")}, New List(Of String) From {("L2 item1"), ("L2 item2")}}

我承认它看起来很复杂,但这就是结构。

为了使代码看起来更简单,我添加了以下显示代码的屏幕截图: https://www.dropbox.com/s/lwym7xq7e2wvwto/Capture12.PNG?dl=0