Ich möchte den Nebeneffekt, wenn Lambda-Ausdruck mit Select
Extension-Methode verwenden, etwa so:Wie kann ein Objekt aus einem Lambda-Ausdruckskörper in der Linq-Erweiterungsmethode geändert werden?
using System;
using System.Collections.Generic;
using System.Linq;
namespace SyntaxExperiment {
public class Program {
static void Main() {
var list = new List<int>();
var results = new[] { 1, 2, 3 }
.Select(
i => {
list.Add(i);
return i;
}
);
Console.WriteLine(list.Count);
}
}
}
Der obige Code Ausgänge:
0
Wie ist das möglich?
Und die obligitory „Sie sollten sich nicht auf Nebenwirkungen werden zu zählen, wenn LINQ-Abfragen laufen, das ist nicht das, was es für entworfen wurde.“ –