c# - 将 List<int?> 转换为 List<int> 的任何简单方法

标签 c# .net

目前我使用 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/

相关文章:

c# - 取任意值类型的数组作为形参

c# - 将代码分配给变量

c# - 调用存储过程时处理 SQL 注入(inject)的最佳实践

.net - LINQ to SQL 中的字符串连接

c# - 站点地图不显示为 xml

c# - 自使用 .Net 4.0 以来 visual studio Release模式中的 InvalidOperationException

c# - 如何在dotnet core中将动态对象序列化为JSON字符串?

.net - xPath 与 DOM API,哪个具有更好的性能

c# - 如何检测我是否在控制台中运行

c# - Ping 网络上的主机名