You can use Select as suggested by others, but you can also use ConvertAll:
List<double> doubleList = intList.ConvertAll(x => (double)x);
This has two advantages:
- It doesn’t require LINQ, so if you’re using .NET 2.0 and don’t want to use LINQBridge, you can still use it.
- It’s more efficient: the
ToListmethod doesn’t know the size of the result ofSelect, so it may need to reallocate buffers as it goes.ConvertAllknows the source and destination size, so it can do it all in one go. It can also do so without the abstraction of iterators.
The disadvantages:
- It only works with
List<T>and arrays. If you get a plainIEnumerable<T>you’ll have to useSelectandToList. - If you’re using LINQ heavily in your project, it may be more consistent to keep using it here as well.