我正在寻找一种方法将我的List(Of string)转换为vb中的Object。所以最后它将与声明Dim cArray()As Object = new Object相同。任何人都可以指出我如何实现这一目标?我不能使用LINQ .ToArray,因为这会创建一个字符串数组,这对我的工作是不可接受的。我需要将此对象传递给另一个具有参数(aArray as Object)的对象。
由于
答案 0 :(得分:4)
所以你想把整个数组传递给一个Object
?这是一个隐式转换,你不需要做任何事情。如果需要Object
数组,则可以使用.Cast(Of Object)().ToArray()
。但是,如果可能的话,考虑改变目标方法,以避免在两者之间来回不必要地进行转换。
答案 1 :(得分:2)
您可以简单地称之为:
SomeStringList.Select(Function(f) CType(f, Object)).ToList
或者你可以通过扩展功能做出一个很好的方法,你可以在任何类型的列表中使用
Module Module1
<System.Runtime.CompilerServices.Extension()> _
Public Function ToObject(Of T)(ByVal aList As List(Of T)) As List(Of Object)
Dim res As List(Of Object)
Try
If aList IsNot Nothing Then
res = aList.Select(Function(f) CType(f, Object)).ToList
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
Return res
End Function
End Module
现在你可以在任何列表中看到它:
Dim iL As New List(Of Integer)
Dim ObjiL = iL.ToObject
Dim sL As New List(Of String)
Dim ObjsL = sL.ToObject
...
答案 2 :(得分:1)
正如minitech所说,你不必真正做任何事情。我尝试了以下代码,它构建没有任何错误:
dim myListOfString As List(Of String) = New List(Of String)
' Initialize your list of string here
' and
dim obj as Object = myListOfString
答案 3 :(得分:0)
你可以创建一个元组对象并将你的字符串列表传递给它:
Dim testVariable = Tuple.Create("string1", "string2", "string3")