Ich habe folgende Linq query:Linq Abfrage ToList() ist leer, aber foreach funktioniert
IEnumerable<Network> net = from file in Directory.GetFiles(folder+ @"\network")
from lines in File.ReadLines(file).Skip(1)
let row = lines.Split(',')
select new Network
{
networkname = getnetwork(row),
...
networkdate = getnetworkdate(row)
};
wenn ich ToList() darauf verwenden, die Liste ist leer, aber wenn ich eine foreach-Schleife, wo ich eine leere Liste und fügen Sie jedes Element hinzu, ist es nicht. Habe ich bei dieser Abfrage einen Fehler gemacht oder könnte es eine andere Quelle für dieses seltsame Verhalten geben?
UPDATE: ich es in einer Verlängerung Methode wie folgt bin mit: Dies funktioniert nicht:
public static void FillFromCsv(this List<Network> network)
{
[QUERY HERE]
network = net.toList();
}
Dies funktioniert:
public static void FillFromCsv(this List<Network> network)
{
[QUERY HERE]
network.Clear();
Foreach (Network n in net)
{
network.add(n);
}
}
Können Sie zeigen, wie Sie 'ToList' und' ForEach' verwenden? Ist es wichtig, in welcher Reihenfolge du sie tust? –
Dies kann durch verzögerte Ausführung von Linq verursacht werden, aber ich bin mir nicht sicher. – Nzall
Wo ist die Dateierweiterung für @ "\ network"? – Auguste