我有一个包含带数组的对象的对象数组。当我尝试添加另一个对象后,我得到一个错误说
'An exception of type 'System.MissingMemberException' occurred in
Microsoft.VisualBasic.dll but was not handled in user code
Additional information: Public member 'Add' on type 'Object()()' not found.'
以下是我尝试添加新成员的方法
Dim data As Object = {
New Object() {"Year", "Sales", "Expenses"},
New Object() {"2004", 1000, 400},
New Object() {"2005", 1170, 460},
New Object() {"2006", 660, 1120},
New Object() {"2007", 1030, 540}
}
Dim newObj = New Object() {"2008", 1030, 540}
data.Add(newObj) 'here the error occures
我尝试将数据更改为List(of Object),然后它工作但List的格式以后是不可接受的(我将数据作为json发送到不同的api)。
可能这很容易出问题,但我有点新手:)提前感谢您的帮助。
答案 0 :(得分:0)
变量data
是Object
。 Object
没有Add
方法。但是,由于您实际上将其声明为Object()
(对象数组),因此无法使用Add
因为数组具有固定大小。
而是使用可以调整大小的List(Of Object)
:
Dim data As List(Of Object) = New List(Of Object) From
{
New Object() {"Year", "Sales", "Expenses"},
New Object() {"2004", 1000, 400},
New Object() {"2005", 1170, 460},
New Object() {"2006", 660, 1120},
New Object() {"2007", 1030, 540}
}
// ...
data.Add(newObj)
但是,如果要存储字符串,为什么要使用对象呢?我会将其声明为List(Of String)
,否则你总是需要拆箱到相同类型的盒子,这种类型效率低,可读性低,容易出错。
如果您需要Object()
,则可以在完成后使用data.ToArray()
。