Verständnis habe ich einen Code wie dies jetztVerzögerte Auswertung in C#
class Context
{
public List<Student> lists;
public Context()
{
lists = new List<Student>() {
new Student { Name="foo",Standard="first",subjects=new Subjects { Geography=50,History=81,Science=70} },
new Student { Name="carl",Standard="first",subjects=new Subjects { Geography=40,History=51,Science=50} },
new Student { Name="ben",Standard="first",subjects=new Subjects { Geography=30,History=91,Science=60} },
new Student { Name="peter",Standard="first",subjects=new Subjects { Geography=80,History=71,Science=40} }
};
}
}
class Client
{
static void Main(string[] args)
{
List<Student> lists = new Context().lists;
var result = lists.Where(x => x.subjects.History > 60);
lists.Add(new Student { Name = "tan", Standard = "first", subjects = new Subjects { Geography = 40, History = 81, Science = 60 } });
lists.Add(new Student { Name = "ran", Standard = "first", subjects = new Subjects { Geography = 30, History = 70, Science = 50 } });
lists.Add(new Student { Name = "ranky", Standard = "first", subjects = new Subjects { Geography = 20, History = 31, Science = 40 } });
lists.Add(new Student { Name = "franky", Standard = "first", subjects = new Subjects { Geography = 50, History = 51, Science = 30 } });
foreach (var data in result) {
Console.WriteLine(data);
}
}
}
beim Debuggen, bevor ein Element hinzugefügt, und wenn ich die Maus über die Variable setzen, i das Ergebnis wie diese
erhaltennach einige Elemente in den Listen hinzufügen, wenn ich über die Variable schweben bekomme ich das Ergebnis wie dieses
aber nach Lazy Execution-Konzept lädt es die Daten, wenn es die Foreach-Methode erreicht, dann warum die Daten bereits geladen und im Debugger gesehen werden. Fehle ich etwas zum Verständnis Lazy Evaluation UPDATE 1 Nach dem vorherigen in Bezug auf meinen Screenshot, wenn Sie auf "Ergebnisse Ansicht" gezwungen, um die Daten dann zu laden, hier ist meine zweite scenerio, wo ich nur die Daten laden, die gesehen werden können bilden Sie den Screenshot
aber wenn der Debugger zum nächsten Element bewegt, erhöht sich die Anzahl.
ist es nicht angenommen, die Daten zu laden, wenn ein Anruf mit einer foreach erfolgt? Bitte hilf mir zu verstehen, wie die Lazy Evaluation funktioniert. Vielen Dank.
Der Code, den Sie in Ihrer Frage sieht aus wie der Screenshot nichts zitiert habe du hast es gezeigt. Bitte geben Sie eine [mcve], und zeigen Sie die Ausgabe von * that * (das kann nur wieder Text sein - es ist keine Notwendigkeit für einen Screenshot überhaupt) –
ok, nur eine Sekunde ... Vielen Dank für die Hilfe –
'Concat' Ändert 'Zahlen' nicht, es gibt * eine neue Liste zurück, die geändert wird. Wahrscheinlich willst du 'result = numbers.Concat (num2);' anstelle von 'numbers.Concat (num2);'. – Quantic