将字符串列表转换为对象

时间:2012-03-06 19:51:26

标签: vb.net

我正在寻找一种方法将我的List(Of string)转换为vb中的Object。所以最后它将与声明Dim cArray()As Object = new Object相同。任何人都可以指出我如何实现这一目标?我不能使用LINQ .ToArray,因为这会创建一个字符串数组,这对我的工作是不可接受的。我需要将此对象传递给另一个具有参数(aArray as Object)的对象。

由于

4 个答案:

答案 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")