Tengo la siguiente línea de código que crea una lista de cadenas.
List<string> tstIdss = model.Ids.Where(x => x.Contains(entityId)).Select(x => x.Split('_').First()).ToList(); Necesito convertirlo en una lista de Guids. es decir List<Guid> PermissionIds.
model.PermissionIds= Array.ConvertAll(tstIdss , x => Guid.Parse(x)); Intenté de la manera anterior pero obtuve el siguiente error. model.PermissionIds se implementa de la siguiente manera en mi clase modelo.
public List<Guid> PermissionIds { get; set; }Error 3
>>The type arguments for method 'System.Array.ConvertAll<TInput,TOutput>(TInput[], System.Converter<TInput,TOutput>)' cannot be inferred from the usage. Try specifying the type arguments explicitly.Puede usar los métodos Select y ToList de Linq:
model.PermissionIds = tstIdss.Select(Guid.Parse).ToList(); O puede usar el método List<T>.ConvertAll :
model.PermissionIds = tstIdss.ConvertAll(Guid.Parse);No estoy familiarizado con ConvertAll , pero intente usar Select :
model.PermissionIds = tstIdss.Select(s=>Guid.Parse(s)).ToList();Tengo la siguiente línea de código que crea una lista de cadenas. Necesito convertirlo en una lista de Guids.
Si es seguro analizar su lista de cadenas como Guids, recomiendo la respuesta de @Thomas Leveque.
Si su lista de cadenas puede contener algunos no guid, es más seguro usar un TryParse de la siguiente manera:
Guid bucket = Guid.Empty; model.PermissionIds = tstIdss.Where(x => Guid.TryParse(x, out bucket)).Select(x => bucket).ToList();La cláusula Where filtrará cualquier cadena que no se pueda formatear como Guid.