Convertir ArrayList a String()

13/09/2005 - 09:40 por David cs | Informe spam
Holas:

Tengo el siguiente problema:

Dim array As ArrayList = obtenerFuncionesPorId(conexion, operario)
Dim roles As String() = array.ToArray(Type.GetType("System.String"))

Return New GenericPrincipal(genericIdentity, roles)

Quiero convertir ese arrayList de identificadores, a una cadena de strings.
Falla en la segunda linea de codigo.

Agradezco cualquier ayuda.

¡¡ Gracias anticipadas !!

Preguntas similare

Leer las respuestas

#1 A.Poblacion
13/09/2005 - 10:18 | Informe spam
"David cs" wrote in message
news:
Tengo el siguiente problema:

Dim array As ArrayList = obtenerFuncionesPorId(conexion, operario)
Dim roles As String() = array.ToArray(Type.GetType("System.String"))

Return New GenericPrincipal(genericIdentity, roles)

Quiero convertir ese arrayList de identificadores, a una cadena de


strings.
Falla en la segunda linea de codigo.



El método ToArray del ArrayList falla en caso de que alguno de los
elementos contenidos dentro del ArrayList no sea del tipo que le indicas con
el GetType (realizando las conversiones con un DirectCast y no con un CType,
por lo que no se producen conversiones implícitas, sino que los tipos tienen
que coincidir realmente).
Tendrás que cerciorarte de que tu método "obtenerFuncionesPorId"
devuelve un ArrayList en el que solo has introducido Strings, y ningún otro
tipo de objeto.
Respuesta Responder a este mensaje
#2 David cs
13/09/2005 - 10:46 | Informe spam
Efectivamente habia un error. obtenerFuncionesPorId devuelve un arrayList de
enteros ...

Dim array As ArrayList = obtenerFuncionesPorId(conexion, operario)
Dim roles As String() = array.ToArray(Type.GetType("System.Int32"))

Return New GenericPrincipal(genericIdentity, roles)

El problema es: ¿Como convierto ese arrayList de enteros a una cadena de
strings?



El codigo lo he hecho en C# hace tiempo y es algo asi ..., pero en Visual
Basic no me sale ni a tiros.
string[] roles = (string[]) array.ToArray(Type.GetType("System.String"));





"A.Poblacion" escribió en
el mensaje news:
"David cs" wrote in message
news:
> Tengo el siguiente problema:
>
> Dim array As ArrayList = obtenerFuncionesPorId(conexion, operario)
> Dim roles As String() = array.ToArray(Type.GetType("System.String"))
>
> Return New GenericPrincipal(genericIdentity, roles)
>
> Quiero convertir ese arrayList de identificadores, a una cadena de
strings.
> Falla en la segunda linea de codigo.

El método ToArray del ArrayList falla en caso de que alguno de los
elementos contenidos dentro del ArrayList no sea del tipo que le indicas


con
el GetType (realizando las conversiones con un DirectCast y no con un


CType,
por lo que no se producen conversiones implícitas, sino que los tipos


tienen
que coincidir realmente).
Tendrás que cerciorarte de que tu método "obtenerFuncionesPorId"
devuelve un ArrayList en el que solo has introducido Strings, y ningún


otro
tipo de objeto.



Respuesta Responder a este mensaje
#3 A.Poblacion
13/09/2005 - 11:13 | Informe spam
"David cs" wrote in message
news:%23pkCV%
Efectivamente habia un error. obtenerFuncionesPorId devuelve un arrayList


de
enteros ...

Dim array As ArrayList = obtenerFuncionesPorId(conexion, operario)
Dim roles As String() = array.ToArray(Type.GetType("System.Int32"))

Return New GenericPrincipal(genericIdentity, roles)

El problema es: ¿Como convierto ese arrayList de enteros a una cadena de
strings?



El codigo lo he hecho en C# hace tiempo y es algo asi ..., pero en Visual
Basic no me sale ni a tiros.
string[] roles = (string[]) array.ToArray(Type.GetType("System.String"));




Por si la necesitas, la traducción exacta de la línea de C# a VB es la
siguiente:
Dim roles As String() = CType(array.ToArray(Type.GetType("System.String")),
String())
pero si tienes el Option Strict Off se puede omitir el CType.

Si en el ArrayList metes enteros, el código anterior en C# tiene que
fallar exactamente igual que en Visual Basic. Si lo quieres convertir a
strings, el único remedio es usar un bucle e ir convirtiendo uno por uno
cada unos de los enteros en string.

La linea que has puesto:
Dim roles As String() = array.ToArray(Type.GetType("System.Int32"))
ya no fallará en el ToArray, pero ese ToArray te devolverá un array de
Integer, y fallará la conversión al meterlo en el array de Strings.

Usa dos arrays, uno de Integers y otro de Strings. Recorre los integers con
un bucle y ve asignando uno por uno al array de strings, haciendo la
conversión de int a string.
Respuesta Responder a este mensaje
#4 David cs
13/09/2005 - 12:04 | Informe spam
¡¡ Mil gracias !!

Al final he hecho que obtenerFuncionesPorId devuelva un ArrayList de Strings
y he usado:

Dim roles As String() = CType(array.ToArray(Type.GetType("System.String")),
String())

De esta forma funciona perfectamente.

¡¡ Muchas gracias por tu ayuda !!





"A.Poblacion" escribió en
el mensaje news:%
"David cs" wrote in message
news:%23pkCV%
> Efectivamente habia un error. obtenerFuncionesPorId devuelve un


arrayList
de
> enteros ...
>
> Dim array As ArrayList = obtenerFuncionesPorId(conexion, operario)
> Dim roles As String() = array.ToArray(Type.GetType("System.Int32"))
>
> Return New GenericPrincipal(genericIdentity, roles)
>
> El problema es: ¿Como convierto ese arrayList de enteros a una cadena de
> strings?
>
>
>
> El codigo lo he hecho en C# hace tiempo y es algo asi ..., pero en


Visual
> Basic no me sale ni a tiros.
> string[] roles = (string[])


array.ToArray(Type.GetType("System.String"));


Por si la necesitas, la traducción exacta de la línea de C# a VB es la
siguiente:
Dim roles As String() CType(array.ToArray(Type.GetType("System.String")),
String())
pero si tienes el Option Strict Off se puede omitir el CType.

Si en el ArrayList metes enteros, el código anterior en C# tiene que
fallar exactamente igual que en Visual Basic. Si lo quieres convertir a
strings, el único remedio es usar un bucle e ir convirtiendo uno por uno
cada unos de los enteros en string.

La linea que has puesto:
Dim roles As String() = array.ToArray(Type.GetType("System.Int32"))
ya no fallará en el ToArray, pero ese ToArray te devolverá un array de
Integer, y fallará la conversión al meterlo en el array de Strings.

Usa dos arrays, uno de Integers y otro de Strings. Recorre los integers


con
un bucle y ve asignando uno por uno al array de strings, haciendo la
conversión de int a string.



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida