使用 lambda 表达式将范围添加到现有列表

本文关键字:列表 添加 范围 lambda 表达式 使用 | 更新日期: 2023-09-27 17:56:57

我想使用 AddRange 将项目列表添加到现有列表中,而不是迭代。我的问题是,如果我添加到现有列表中的集合是 lambda 表达式,那么当我访问现有列表或此时添加到现有列表中的项目时,是否会重新评估它。如果是前者,那么我当然可以使用.ToList()简单地评估表达式。见下文:

_divisionsInGroup.AddRange(Event.Divisions.Where(x => x.SplitGroup == SplitGroup));

还是我需要

_divisionsInGroup.AddRange(Event.Divisions.Where(x => x.SplitGroup == SplitGroup).ToList());

编辑:它似乎可以计算表达式并将项目添加到列表中,因此无需通过在 lambda 上调用 ToList() 来创建新的列表实例。

使用 lambda 表达式将范围添加到现有列表

AddRange更改基础列表对象。

_divisionsInGroup.AddRange(Event.Divisions.Where(x => x.SplitGroup == SplitGroup));

将更改_divisionsInGroup.

如果要进一步将其转换为List<T>,则应使用.ToList())

无需在 lambda 上调用 ToList(),表达式由 AddRange 方法计算,项目附加到列表末尾。