Ich spiel grad mit den neuen Features rum (mir ist bewusst, wie alt LINQ ist)
Ich hab ein Query, was so aussieht:
var fis = from diffFile in Directory.GetFiles(diffPath)
where File.Exists(oldPath + "\\" + new FileInfo(diffFile).Name)
select diffFile;
Der loopt ne liste und guck ob die Dateinamen in oldPath und in diffPath gleich sind.
Nun krieg ich die Menge, bei dem das Where true ist, aber gibt es einen weg, auch ein else zu implementieren? Oder greift man da wieder zu der For schleife?
Ich will quasi wenn File.Exist false is ein event erzeugen und das select dann natürlich nicht mehr ausführen. Ist dies möglich?
Life is a short
bei Linq gehts ums selecten. Wenn du also gar nicht selekten willst, sondern mit allen Elementen ggfs. je was verschiedenes, dann ist olle foreach (zu deutsch: "für jedes") das Mittel der Wahl.
Ich find, man sollte Linq nicht zu überbewerten. Komplizierte Linq-Konstruktionen sehen evtl. toll aus, aber bis man das hingefrickelt hat, hat mans u.U. mit foreach in der halben Zeit entwickelt. Schon weil man foreach schrittweise durchlaufen kann.
Der frühe Apfel fängt den Wurm.
Hallo Seikilos,
ein else
bezieht sich auf ein if
. where
schränkt eine Abfrage ein. where
und if
haben sozusagen die gleichen Eigenschaften. Du hast auch Abfragen in Abfragen schreiben. Und so gut auch where
in where
schreiben. Möchtest du es darauf ankommen lassen, kannst du dir auch eine Extension Method schreiben.
zero_x
zero_x | <span style="font-size: 10;">my</span><span style="font-size: 10;">CSharp</span><span style="font-size: 10;">.de</span> - gemeinsam mehr erreichen
Für längere Zeit inaktiv.