Why is result.Add (value) not executing?
This is because LINQ uses delayed execution. Until you list the results (return Select), delegates will not be executed.
To demonstrate, try the following:
List<int> result = new List<int>();
var list = new List<int> { 1, 2, 3, 4 };
var results = list.Select(value =>
{
result.Add(value);
return value;
});
foreach(var item in results)
{
}
, . LINQ , . Select , .
. , foreach IEnumerable ?
:
public static void ForEach<T>(this IEnumerable<T> items, Action<T> action)
{
foreach(var item in items)
action(item);
}
. . .