结构体数组(动态增长),数组元素里还有数组成员,怎么定义和初始化?

秋的红果实 2014-01-10 01:46:07
如题

'定义结构体
Public Structure RowData
Public CellData() As String
End Structure

'使用结构体
Dim myA() As RowData
初始化……?
ReDim Preserve myA(myA.Length + 1)
赋予新值……?

怎么初始化?怎么赋新值?是不是也要写构造函数。一上午都没弄出来,没用过VB.Net,只用过VB6
...全文
264 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
秋的红果实 2014-01-10
  • 打赏
  • 举报
回复
原来privite惹的祸
秋的红果实 2014-01-10
  • 打赏
  • 举报
回复
我要实现行数在动态变的二维数组效果
threenewbee 2014-01-10
  • 打赏
  • 举报
回复
CellData定义成public mya.CellData(0)
秋的红果实 2014-01-10
  • 打赏
  • 举报
回复
引用 4 楼 caozhy 的回复:
为什么要通过构造函数传一个List呢 Public Class RowData Private CellData As New List(Of String) Sub New(ByVal p_cell As List(Of String)) CellData.AddRange(p_cell) End Sub End Class
我按照你的说法改了。问题是,怎么读取里面的数据? 我在vb.net里,纯粹菜鸟,我要取得“A2”这个值,语句怎么写?
threenewbee 2014-01-10
  • 打赏
  • 举报
回复
为什么要通过构造函数传一个List呢 Public Class RowData Private CellData As New List(Of String) Sub New(ByVal p_cell As List(Of String)) CellData.AddRange(p_cell) End Sub End Class
秋的红果实 2014-01-10
  • 打赏
  • 举报
回复
还是不行啊 '定义类 Public Class RowData Private CellData As List(Of String) Sub New(ByVal p_cell As List(Of String)) CellData = p_cell End Sub End Class '给列表赋值 Dim myList As New List(Of RowData) Dim tempA As New List(Of String) For i As Integer = 0 To 5 tempA.Add("A" + i.ToString()) Next Dim myA As RowData = New RowData(tempA) myList.Add(myA) 怎么访问myList里的元素?我想象中的myList(0).CellData(0)无效啊?
threenewbee 2014-01-10
  • 打赏
  • 举报
回复
少用数组,多用集合和列表。
兔子-顾问 2014-01-10
  • 打赏
  • 举报
回复
如果不确定长度,可以放弃以前vb的写法,例如

Public Structure RowData
Public CellData() As String
End Structure


结构体可以修改定义为类,动态数组用List(Of...)替换

Public Class RowData
Public CellData As New List(Of String)
End Class



初始化
Dim myList as New List(Of RowData)


每次增加
myList.Add(new RowData())

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧