2016-07-15 9 views
-2

AddRangeを使用して、反復処理ではなく既存のリストに項目のリストを追加したいと考えています。私の質問は、私が既存のリストに追加したコレクションがラムダ式であれば、既存のリストにアクセスしたり、その時点で既存のリストに追加されたアイテムにアクセスしたときに再評価されるかどうかです。 前者の場合はもちろん、.ToList()を使って式を評価することができます。以下を参照:ラムダ式を使用して既存のリストに範囲を追加する

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

をOR私は必要なのです

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

EDIT:式を評価し、リストに項目を追加、そうに見える 新しいリストを作成する必要はありませんラムダのToList()を呼び出すことによってインスタンスを返します。

+2

私はこのトピックをトピックとして閉じようとしているので、試してみてください。 –

答えて

0

ラムダでToList()を呼び出す必要はなく、式はAddRangeメソッドによって評価され、アイテムはリストの末尾に追加されます。

1

AddRangeは、基本となるリストオブジェクトを変更します。

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

_divisionsInGroupを変更します。さらにList<T>に変換する場合は

.ToList())を使用する必要があります。

関連する問題