如何简单地将List转换为List

12 浏览
0 Comments

如何简单地将List转换为List

目前我使用List ints = tuple.Item2.Select(s => s.Value).ToList(),但是当tuple.Item2有数千个项目时,这似乎很低效。有没有更好的方法来实现这个目标?除了使用for循环。

admin 更改状态以发布 2023年5月21日
0
0 Comments

您可以简单地使用Linq Cast<>来实现这一点。

List ints = tuple.Item2.Cast();

但是,如果元素无法强制转换为TResult类型,此方法将引发异常。您必须考虑捕捉异常。

0
0 Comments

将一个List中的每个元素转换并存储到另一个List中的内置方法是List.ConvertAll

List ints = tuple.Item2.ConvertAll(s => s.Value);

.Select(...).ToList().Cast(...).ToList()不同,此方法已经预先知道列表的大小,并且避免了.ToList()无法避免的不必要的重新分配。

为使此方法生效,tuple.Item2必须真正是List。它不是一个扩展方法,它无法在通用的IEnumerable接口上工作。

0