我想要使用AddRange
将项目列表添加到现有列表中,而不是迭代。我的问题是,如果我添加到现有列表中的集合是一个lambda表达式,那么当我访问现有列表时,是否会重新评估该列表,或者是否在此时添加到现有列表中的项目。 如果前者那么我当然可以简单地使用.ToList()
来评估表达式。见下图:使用lambda表达式将范围添加到现有列表
_divisionsInGroup.AddRange(Event.Divisions.Where(x => x.SplitGroup == SplitGroup));
还是需要
_divisionsInGroup.AddRange(Event.Divisions.Where(x => x.SplitGroup == SplitGroup).ToList());
编辑: 这似乎计算表达式,并添加项目到列表中,因此没有必要创建一个新的列表实例通过在lambda上调用ToList()。
我正在投票结束这个问题作为题外话,因为试试看,并找出答案。 –