La primera respuesta no debería ser la aceptada. Soy un ex MVP de Microsoft C # 2007.
En contraste con la respuesta aceptada, ConvertAll
es mucho más eficiente que la combinación de Select
y ToList()
.
En primer lugar, ConvertAll
es estrictamente más rápido y utiliza la cantidad mínima de memoria para hacerlo. Igual que Array.ConvertAll vs Select y ToArray. Esto sería mucho más evidente con una matriz de mayor longitud o muchas llamadas dentro de un bucle.
1) ConvertAll
conoce el tamaño de la lista final y evita reasignar la matriz base. ToList
() seguirá cambiando el tamaño de la matriz varias veces.
2) ToList
hará IEnumerable<>
llamadas de interfaz más lentas , mientras ConvertAll
que recorrerá la matriz subyacente sin llamadas adicionales o comprobaciones de rango.
3) Seleccionar creará un IEnumerable<T>
objeto adicional .