本文介绍了转换List< int>的最快方法列出< int?>的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

最快的方法是获取原始列表并将其转换为可为空的原始列表例如:在c#

What is the fastest way take list of primitivtes and convert it to nullable list of primitivesfor example: List<int> to List<int?> in c#

简单的解决方案,创建新列表以及使用foreach循环添加每个项目都需要太多时间.

the easy solution, creating new list and adding every item with foreach loop takes too much time.

推荐答案

没有比创建新列表更快的方法:

There is no way faster than creating a new list:

var newList = list.Select( i => (int?)i ).ToList();

但是,使用LINQ的速度比使用裸露循环的速度慢.

However using LINQ is slower that using a bare loop.

最快的方法是使用具有预分配容量的List<int?>:

The fastest way is to use a List<int?> with pre-allocated capacity:

List<int?> newList = new List<int?>(list.Count); // Allocate enough memory for all items
foreach (var i in list)
    newList.Add(i);

如果要对列表项进行就地类型转换,则不可能.

If you are seeking for in-place type casting of list items, it's not possible.

这篇关于转换List&lt; int&gt;的最快方法列出&lt; int?&gt;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-05 17:37