Új hozzászólás Aktív témák
-
Karma
félisten
válasz
tototos
#6600
üzenetére
Ott valamit nagyon elnézel, az input változó biztosan nem egy szöveget tartalmaz. Mondjuk ha megpróbálod kiíratni, akkor tényleg ezt kaphatod.
Az a helyzet, hogy a LINQ query szintaxis, hasonlóan a legtöbb LINQ metódushoz, nem listát ad vissza, hanem egy IEnumerable-t; leegyszerűsítve egy "képletet", hogy hogy lehet végrehajtani az általad felsorolt műveleteket. Nem is fut végig a stringlistádon ekkor még.
Ha a visszakapott IEnumerable-ön hívsz egy ToList()-et, végigfut a ciklus és megkapod a tényleges listát.
var lines = File.ReadLines(fileName);
var input = (from line in lines
where (!line.Contains("dblink"))
select line).ToList();Így már input egy List<String> lesz, benne a neked kellő sorokkal.
A metódus formában ez így nézne ki, igazából szerintem egy ilyen egyszerű szűrésnél sokkal jobban olvasható:
var lines = File.ReadLines(fileName)
.Where(line => !line.Contains("dblink"))
.ToList();---
A ToListen kívül a ToArray, ToDictionary, ToLookup metódusok hívásakor, továbbá foreach ciklussal vagy XAML bindinggal is kiértékelődik a képlet.
Nagyon oda kell figyelni arra, hogy ahány ilyet hívsz, annyiszor újrakezdi a teljes számolást! Ezért miután a képleted teljes, célszerű a ToListtel materializálni a listát, és így megspórolni a felesleges újraszámolásokat.
---
Csendben kicseréltem a ReadAllLines hívást ReadLinesra. Ennek a verziónak az a hatalmas előnye, hogy nem olvassa fel azonnal a teljes fájlt a memóriába, hanem soronként dolgozza fel, ahogy materializálódik az eredmény, memóriát spórolva. Jobban is passzol a LINQ filozófiájához.
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Samsung Galaxy S24 Ultra 256GB + töltőfej
- Apple iPhone 15 Pro Max 256GB, Kártyafüggetlen, 1 Év Garanciával
- BONTATLAN Lenovo ThinkCentre M70s SFF Business Időtálló Asztali gép -50% i5-14500 16/512 770 Magyar
- 1db DELL P2421 + 1db P2423 1920x1200 IPS monitor, állítható magasság PIVOT is, 16:10 képarány!
- AKCIÓ!! Alienware m16 r1 AMD Laptop , RTX 4080 , R9 7845HX , 32GB DDR5 , 2TB
- Apple iPhone 13 mini Red Kompakt méret, nagy teljesítmény 256 GB Használt,szép állapot, 100%
- Targus DOCK423A - USB-C Dual HDMI 4K HUB - 2 x HDMI (120Hz)
- BESZÁMÍTÁS! MSI B550M R7 5800X 32GB DDR4 512GB SSD RTX 3070 8GB FSP CMT510 Cooler Master 750W
- ÁRGARANCIA!Épített KomPhone i5 12400F 16/32/64GB RAM RTX 5060 Ti 16GB GAMER PC termékbeszámítással
- Telefon felvásárlás!! Apple Watch Series 9/Apple Watch Ultra/Apple Watch Ultra 2
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

