使用lambda表达式

时间:2016-07-15 00:01:26

标签: c# lambda

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

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

或者我需要

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

修改 它似乎评估表达式并将项添加到列表中,因此不需要通过调用lambda上的ToList()来创建新的列表实例。

2 个答案:

答案 0 :(得分:1)

AddRange更改基础List对象。

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

将更改_divisionsInGroup

如果您想进一步将其转换为.ToList()),则应使用

List<T>

答案 1 :(得分:0)

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