La primera respuesta no debería ser la aceptada. Soy un ex MVP de Microsoft C # 2007.
En contraste con la respuesta aceptada, ConvertAlles mucho más eficiente que la combinación de Selecty ToList().
En primer lugar, ConvertAlles 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) ConvertAllconoce 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) ToListhará IEnumerable<>llamadas de interfaz más lentas , mientras ConvertAllque recorrerá la matriz subyacente sin llamadas adicionales o comprobaciones de rango.
3) Seleccionar creará un IEnumerable<T>objeto adicional .