C# Converting List to List

后端 未结 6 1687
星月不相逢
星月不相逢 2020-12-14 07:07

I have a List and I want to convert it to a List. Is there any way to do this other than just looping through the Li

6条回答
  •  遥遥无期
    2020-12-14 07:40

    You can use Select as suggested by others, but you can also use ConvertAll:

    List 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 ToList method doesn't know the size of the result of Select, so it may need to reallocate buffers as it goes. ConvertAll knows 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 and arrays. If you get a plain IEnumerable you'll have to use Select and ToList.
    • If you're using LINQ heavily in your project, it may be more consistent to keep using it here as well.

提交回复
热议问题