我有一个如下列表,我想将其添加到另一个列表中:
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中实现这一目标?
答案 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)
AddRange
和Concat
之间的差异是:
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