static void Main(string[] args) { Ember ember = new Ember(); List <Ember> emberek = new List <Ember>(); try { FileStream fajl = new FileStream(@"d:/rud/tesztadat_20k.txt", FileMode.Open); using (StreamReader sr = new StreamReader(fajl, Encoding.Default)) { while (!sr.EndOfStream) { //a fájl egy sorának feldolgozása tömbbe var e = sr.ReadLine().Split(','); ember.vezeteknev = e[0]; ember.keresztnev = e[1]; //konvertálni kell számra ember.szuletesiEv = Convert.ToInt32(e[2]); ember.szuletesiHely = e[3]; emberek.Add(ember); } } } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.WriteLine($"Adatsorok száma:{emberek.Count}"); var hatvankilenc = emberek.FindAll(x => x.szuletesiEv == 1969); //adott feltételnek megfelelő adatok megszámolása var mennyi = emberek.Count(x => x.szuletesiEv == 1969); Console.WriteLine(hatvankilenc.Count); foreach (var h in hatvankilenc) { Console.WriteLine($"{h.vezeteknev},{h.keresztnev},{h.szuletesiEv},{h.szuletesiHely}"); } var bencek = emberek.FindAll(x => x.keresztnev.ToLower() == "bence"); Console.WriteLine($"Ennyi Bence van:{bencek.Count}"); //Csoportosítások //csoportosítás egy vagy akár több adat szerint var csoport = hatvankilenc.ToLookup(x => x.vezeteknev).OrderBy(x => x.Key); foreach (var c in csoport) { Console.WriteLine($"Vezetéknév:{c.Key},{c.Count()}.db"); } //születési hely és keresztnév var szhely = hatvankilenc.OrderBy(x => x.szuletesiHely).ThenBy(x => x.keresztnev).ToLookup(x => new { x.szuletesiHely, x.keresztnev }); foreach (var sz in szhely) { Console.WriteLine($"{sz.Key.szuletesiHely},{sz.Key.keresztnev},{sz.Count()}"); } //Az egyes években hányan születtek, az eredmény legyen csökkenő sorrenben var eves = emberek.ToLookup(x => x.szuletesiEv).OrderByDescending(x => x.Count()); foreach (var e in eves) { Console.WriteLine($"{e.Key},{e.Count()}"); } //Az egyes években milyen keresztnevű emberek születtek, név szerint növekvő sorrendben var eveskeresztnev = emberek.ToLookup(x => new { x.szuletesiEv, x.keresztnev }).OrderBy(x => x.Key.keresztnev); foreach (var e in eveskeresztnev) { Console.WriteLine($"{e.Key.keresztnev},{e.Key.szuletesiEv},{e.Count()}"); } try { FileStream outFajl = new FileStream(@"d:/h9.txt", FileMode.Create); using (StreamWriter sw = new StreamWriter(outFajl, Encoding.Default)) { foreach (var h in hatvankilenc) { sw.WriteLine($"{h.vezeteknev},{h.keresztnev},{h.szuletesiEv},{h.szuletesiHely}"); } } Console.WriteLine("Kiírás kész!"); } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.ReadKey(); }
static void Main(string[] args) { //A struktúra érték típus Ember ember = new Ember(); List <Ember> emberek = new List <Ember>(); try { FileStream file = new FileStream(@"d:/rud/tesztadat_20k.txt", FileMode.Open); //használat után felszabadítja az erőforrást using (StreamReader sr = new StreamReader(file, Encoding.Default)) { while (!sr.EndOfStream) { //feldolgozás var elemek = sr.ReadLine().Split(','); ember.vezeteknev = elemek[0]; ember.keresztnev = elemek[1]; ember.szulev = Convert.ToInt32(elemek[2]); ember.szulhely = elemek[3]; emberek.Add(ember); } } } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.WriteLine(emberek.Count); var hetven = emberek.FindAll(x => x.szulev == 1970); Console.WriteLine(hetven.Count); //foreach (var h in hetven) //{ // Console.WriteLine($"{h.vezeteknev},{h.keresztnev},{h.szulev},{h.szulhely}"); //} //k-val kezdődő vezetéknevű emberek var kkezd = emberek.FindAll(x => x.vezeteknev.ToLower().StartsWith("k")); //Console.WriteLine($"K-val kezdődő vezetéknevek:{kkezd}.db"); //Készítsen összesítést, ami megadja, hogy az egyes helyiségekben //hányan születtek! var helyisegek = emberek.ToLookup(x => x.szulhely).OrderBy(x => x.Count()); //foreach (var h in helyisegek) //{ // Console.WriteLine($"{h.Key},{h.Count()}"); //} //születési év és hely szerinti összesítés var szhelyev = emberek.ToLookup(x => new { x.szulhely, x.szulev }).OrderBy(x => x.Key.szulhely).ThenBy(x => x.Key.szulev); foreach (var s in szhelyev) { Console.WriteLine($"{s.Key.szulhely},{s.Key.szulev},{s.Count()}"); } try { FileStream outFajl = new FileStream(@"d:/kkezd.txt", FileMode.Create); using (StreamWriter sw = new StreamWriter(outFajl, Encoding.Default)) { foreach (var k in kkezd) { sw.WriteLine($"{k.vezeteknev},{k.keresztnev},{k.szulev},{k.szulhely}"); } } } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.ReadKey(); }
static void Main(string[] args) { //1. megoldás //try //{ // FileStream fajl = new FileStream(@"d:/rud/tesztadat_20k.txt", FileMode.Open); // StreamReader sr = new StreamReader(fajl, Encoding.Default); // while (!sr.EndOfStream) // { // Console.WriteLine(sr.ReadLine()); // } // sr.Close(); //} //catch (Exception ex) //{ // Console.WriteLine(ex.Message); //} //2. megoldás, fájl zárása a finally block-ban //FileStream fajl = null; //StreamReader sr = null; //try //{ // fajl = new FileStream(@"d:/rud/tesztadat_20k.txt", FileMode.Open); // sr = new StreamReader(fajl, Encoding.Default); // while (!sr.EndOfStream) // { // Console.WriteLine(sr.ReadLine()); // } //} //catch (Exception ex) //{ // Console.WriteLine(ex.Message); //} //finally //{ // //Amit itt van az minden esetben végrehajtódik // //Logikus, hogy itt zárjuk be a fájlt // if (sr!=null) // { // sr.Close(); // } //} //3. megoldás List <Ember> emberek = new List <Ember>(); try { FileStream fajl = new FileStream(@"d:/rud/tesztadat_20k.txt", FileMode.Open); using (StreamReader sr = new StreamReader(fajl, Encoding.Default)) { while (!sr.EndOfStream) { var elemek = sr.ReadLine().Split(','); Ember ember = new Ember { Vezeteknev = elemek[0], Keresztnev = elemek[1], SzuletesEve = Convert.ToInt32(elemek[2]), Szuletesihely = elemek[3] }; emberek.Add(ember); } } } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.WriteLine(emberek.Count); var al = emberek.FindAll(x => x.Vezeteknev.ToLower().StartsWith("al")).OrderBy(x => x.Vezeteknev).ThenBy(x => x.Keresztnev); Console.WriteLine(al.Count()); foreach (var n in al) { Console.WriteLine($"{n.Vezeteknev},{n.Keresztnev},{n.SzuletesEve},{n.Szuletesihely}"); } var alstat = al.ToLookup(x => new { x.Vezeteknev, x.Keresztnev }); foreach (var n in alstat) { Console.WriteLine($"{ n.Key.Vezeteknev},{n.Key.Keresztnev },{ n.Count()}"); } //Kiírás fájlba try { FileStream outFajl = new FileStream($"d:/eredmeny.txt", FileMode.Create); using (StreamWriter sw = new StreamWriter(outFajl, Encoding.Default)) { foreach (var a in al) { sw.WriteLine($"{a.Vezeteknev},{a.Keresztnev},{a.SzuletesEve},{a.Szuletesihely}"); } } } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.ReadKey(); }