none
Convertir ArrayList a string[] en ASP.NET C# RRS feed

  • Pregunta

  • Hola amigos que tal alguien puede ayudarme por favor con este método ya que me saca la siguiente excepción al tratar de convertir ArrayList a string[]

    Al menos un elemento de la matriz de origen no se puede convertir en la matriz de destino.

    este es mi metodo ytilizo linq y entity framework:

     public string[] Rol_Para_Usuario(string u)
          {
              ArrayList lista = new ArrayList();
    
              var res = (from user in model.Users
                             join
                             roles in model.RolUser
                             on user.idrol equals roles.idrol
                             where user.nombreUser == u
    
                             select new {Usname = user.nombreUser, Rolename = roles.nombre_rol });
    
    
              foreach (var item in res)
              {
                  lista.Add(item);
                  
              }
    
            
              string[] arrayFinal = (string[])lista.ToArray(typeof(string)); // aquí me marca la excepción
    
    
              return arrayFinal;
    
             
              
          }

    gracias por su ayuda.

    martes, 26 de julio de 2016 15:43

Respuestas

  • pero en la entidad tienes dos propiedades, cual de las dos estarias pasando a string ?

    var res = (from user in model.Users
    			 join
    			 roles in model.RolUser
    			 on user.idrol equals roles.idrol
    			 where user.nombreUser == u
    			 select new {
    					Usname = user.nombreUser, 
    					Rolename = roles.nombre_rol 
    				});
    
    List<string> lista = new List<string>();
    foreach (var item in res)
    {
      lista.Add(string.Format("{0} - {1}", item.Usname, item.Rolename));
    }
    
    
    string[] arrayFinal = lista.ToArray(); 

    tienes que asignar un string en el list para que array final sea del mismo tipo

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Molten Golem martes, 26 de julio de 2016 19:42
    martes, 26 de julio de 2016 15:55

Todas las respuestas

  • pero en la entidad tienes dos propiedades, cual de las dos estarias pasando a string ?

    var res = (from user in model.Users
    			 join
    			 roles in model.RolUser
    			 on user.idrol equals roles.idrol
    			 where user.nombreUser == u
    			 select new {
    					Usname = user.nombreUser, 
    					Rolename = roles.nombre_rol 
    				});
    
    List<string> lista = new List<string>();
    foreach (var item in res)
    {
      lista.Add(string.Format("{0} - {1}", item.Usname, item.Rolename));
    }
    
    
    string[] arrayFinal = lista.ToArray(); 

    tienes que asignar un string en el list para que array final sea del mismo tipo

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Molten Golem martes, 26 de julio de 2016 19:42
    martes, 26 de julio de 2016 15:55
  • Gracias Leandro me sirvió de mucho y solo modifique mi foreach de acuerdo a mis necesidades quedando así:

    foreach (var item in res)
    {
      lista.Add(item.Rolename);
    }

    Gracias.

    martes, 26 de julio de 2016 19:45