Laden...

LINQ, wie else branch realisieren? (C#3.5)

Erstellt von Seikilos vor 13 Jahren Letzter Beitrag vor 13 Jahren 904 Views
S
Seikilos Themenstarter:in
753 Beiträge seit 2006
vor 13 Jahren
LINQ, wie else branch realisieren? (C#3.5)

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

5.299 Beiträge seit 2008
vor 13 Jahren

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.

1.044 Beiträge seit 2008
vor 13 Jahren

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