Ich verwende einen Lambda-Ausdruck, um eine Abfrage zu filtern.C# Lambda Ausdruck liefert kein erwartetes Ergebnis
Grundsätzlich habe ich Zeilen, die aus Segmenten bestehen und diese Segmente als gelöscht, eingefügt oder null markiert sind.
Was ich zurückgeben möchte, sind Segmente, die als gelöscht markiert wurden, aber deren Geschwister NICHT als gelöscht gekennzeichnet sind. Als Beispiel
Line: "Soylent Green is people!" Broken into 2 segments...
Segment 1: "Soylent Green " (marked as deleted)
Segment 2: "is people!" (not marked as deleted)
Sollte ich zurück Segment 1. Aber das nächste Beispiel
Line: "Open the pod bay doors Hal!" Broken into 3 segments...
Segment 1: "Open the " (marked as deleted)
Segment 2: "pod bay " (marked as deleted)
Segment 3: "doors Hal!" (marked as deleted)
keine Segmente zurückkehren. Siehe Code unten:
return seg => seg.ModType == Deleted &&
seg.Line.Segments.Any(segs => segs.ID != seg.ID &&
segs.ModType != Deleted);
Dank und ich schätze jede Hilfe oder einen Vorschlag, warum dies nicht funktioniert.
Sie haben uns nicht genug gezeigt, um wirklich zu erzählen. Was ist die "ID" hier? Bitte geben Sie ein kurzes, aber * vollständiges * Programm an, um das Problem zu demonstrieren. Ich vermute, sobald wir es reproduzieren können, werden wir das Problem leicht finden. Ich würde vorschlagen, dass "seg" und "segs" ein Rezept für Verwirrung ist. –
Sind Sie sicher, dass die Line.Segments-Sammlung korrekt ist? – womp
Bitte posten Sie ein vollständiges, aber kurzes Programm, das kompiliert und ausgeführt werden kann, um Ihr Problem zu reproduzieren. Dies hilft uns dabei, Ihnen Code zu geben, den wir debuggen und optimieren können, um die gewünschten Ergebnisse zu erzielen. –