Como convertir un List<TypeA> a un List<TypeB>
En ocasiones nos surge la necesidad de pasar los datos de un List<TypeA> a otro List<> conteniendo un objeto de tipo diferente.
Lo primero que se nos ocurre es:
- Crear un List<> con el tipo destino.
- Realizar un
foreachsobre el List<> con el tipo fuente. - Y por cada uno de los elementos:
- Convertirlo al tipo destino.
- Agregarlo a la lista destino
Para ejemplificar esto seguiremos los siguientes pasos:
Creamos la lista fuente y agregamos algunos objetos:
View CodeCSHARP | |
1 2 3 4 5 | List<TipoFuente> listaFuente = new List<TipoFuente>(); listaFuente.Add(new TipoFuente(2)); listaFuente.Add(new TipoFuente(5)); listaFuente.Add(new TipoFuente(7)); |
Implementamos el algoritmo descrito anteriormente:
View CodeCSHARP | |
7 8 9 10 11 12 | List<TipoDestino> listaDestino = new List<TipoDestino>(); foreach(TipoFuente f in listaFuente) { listaDestino.Add(new TipoDestino(f.id)); } |
Esto seguramente funciona, sin embargo existe una manera más sencilla de hacerlo: Usando el método de la clase List llamado ConverAll.
En seguida muestro un fragmento de como implementar la conversión usando dicho método:
View CodeCSHARP | |
7 8 9 10 11 12 13 | List<ConsParamAlertas> consultas; listaDestino = ((List< TipoFuente >) listaFuente) .ConvertAll<TipoDestino>( delegate(TipoFuente f) { return (new TipoDestino(f.id)); }); |
Espero que este pequeño ejemplo les sirva cuando tengan que Convertir un List<TypeA> a un List<TypeB> ;).
| Related postsNo comments yet. Be the first.
Leave a reply


Suscribete por correo