目前我使用 List<int> ints = tuple.Item2.Select(s => s.Value).ToList()
但是当 tuple.Item2 有 1000 个项目时,这看起来效率很低。有更好的方法来实现这一目标吗?除了使用 for 循环。
最佳答案
将每个元素转换为一个的内置方式List<T1>
并将结果存储在另一个 List<T2>
中是 List<T1>.ConvertAll
.
List<int> ints = tuple.Item2.ConvertAll(s => s.Value);
不同于.Select(...).ToList()
或 .Cast(...).ToList()
,此方法提前知道列表大小,并防止不必要的重新分配 .ToList()
无法避免。
为此,tuple.Item2
一定是 List<int?>
.它不是扩展方法,它不能在通用 IEnumerable<int?>
上工作界面。
关于c# - 将 List<int?> 转换为 List<int> 的任何简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13738125/