将新项添加到Object Array

时间:2014-07-29 07:22:40

标签: vb.net

我有一个包含带数组的对象的对象数组。当我尝试添加另一个对象后,我得到一个错误说

'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)。

可能这很容易出问题,但我有点新手:)提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

变量dataObjectObject没有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()