c#: aparece este error "El argumento 2 no se puede convertir de System.Collections.Generic.IEnumerable cadena a cadena"

CorePress2024-01-24  11

Aquí está la línea de código

result = await userManager.AddToRoleAsync(user, model.Where(x => x.IsSelected)
            .Select(y => y.RoleName));

1

AddToRoleAsync espera una cadena, no una secuencia de cadenas. Agregue Single() o First() o algo similar a su expresión Linq.

-heijp06

27 de marzo de 2021 a las 7:19



------------------------------------

Intenta usar FirstOrDefault para obtenersolo un valor de la colección

Ejemplo:

result = await userManager.AddToRoleAsync(user, model.Select(y => y.RoleName)
                                                     .FirstOrDefault(x => x.IsSelected)??"");
Respondido

27 de marzo de 2021 a las 7:21 am

jcHernande2

jcHernande2

301

2

2 insignias de plata

6

6 insignias de bronce



------------------------------------

-------------- ------------------

prueba esto:

var role= model.FirstOrDefault(x => x.IsSelected);
if(role ==null) ... error;
           
result = await userManager.AddToRoleAsync(user, role.RoleName);

o tal vez

var roleName= model.Where(x => x.IsSelected).Select(i=> new {Name=i.RoleName}).FirstOrDefault();
result = await userManager.AddToRoleAsync(user, roleName.Name);

2

Resuelto gracias.

- saqibhaneef

27/03/2021 a las 14:39

parámetros que aceptan la lista pero estaba pasando una cadena. Coloqué la solución a continuación

- saqibhaneef

27/03/2021 a las 14:41



------------------------------------

Solved by replacing this code

var roleName=model.Where(x => x.IsSelected).Select(y => y.RoleName).ToList();

        if(roleName!=null)
        {
            foreach (var roleN in roleName)
            {
                result = await userManager.AddToRoleAsync(user, roleN);
            }
        }

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare