Összetett adattípusok Forrás: Reiter István, C# jegyzet
Tömb Azonos elemi típusú adatokból tárol többet egy változóban Legfontosabb jellemzője a dimenziószáma: 1 dimenziós: vektor. 2 dimenziós: mátrix. A C# nyelv minden tömb-típusdefiníciót a System.Array osztályból származtat.
Tömb Az egyes elemekre index segítségével hivatkozhatunk. Az egyes tömbelemekre való hivatkozás, a tömbök indexelése, mindig 0-val kezdődik. Az index csak egész típusú lehet.
Tömb definiálása típus [ ] név; Pl.: int [ ] szam; egész számok tömbje szam=new int [10]; 10 elemű egész tömb int db=15; szam=new int [db]; db elemszámú egész tömb (változó adja a hosszát)
Tömb definiálása Ha az elemeket definiáláskor szeretnénk megadni: int [ ] szam=new int [5] {1;2;3;4;5}; int [ ] szam=new int [ ] {1;2;3;4;5}; string [ ] nev=new string [2] {„Ali”; „Vali”};
Tömb hosszának meghatározása Pl.: int [ ] szam={1;2;3;4;5}; int hossz=szam.Length;
Több dimenziós tömb Pl.: int [ , ] matrix=new int [3,3] 3x3-as tömb
Karakterlánc Definiálása: string s = "ezegystring"; Egy string egyes betűire az indexelő operátorral hivatkozhatunk (vagyis minden stringet kezelhetünk tömbként is): Console.WriteLine(s[0]); // ‘e’ kiíratása Console.WriteLine(s[1]); // ‘z’ kiíratása
Karakterlánc A foreach ciklussal indexelő operátor nélkül is végigiterálhatunk a karaktersorozaton: foreach (char ch in s) { Console.WriteLine(ch); }
Karakterlánc Fontos! Amikor egy létező string objektumnak új értéket adunk, akkor nem az eredeti példány módosul, hanem egy teljesen új objektum keletkezik a memóriában (a string ún. immutable – megváltoztathatatlan típus).
String metódusok Összehasonlítás: A String.Compare metódus nullát ad vissza ha a két string egyenlő, és nullánál kisebbet/nagyobbat, ha nem. Pl.: string a = "egyik"; string b = "másik"; int x = String.Compare(a, b); if (x == 0) { Console.WriteLine("A két string egyenlő"); } else if (x < 0) { Console.WriteLine("Az 'a' a kisebb"); else { Console.WriteLine("A 'b' a kisebb");
String metódusok Keresés: IndexOf és LastIndexOf: egy string vagy karakter első illetve utolsó előfordulási indexét (stringek esetén a kezdőindexet) adják vissza. Ha nincs találat, akkor a visszaadott érték -1 lesz. Any-re végződő változatuk: egy karaktertömböt fogad paramétereként és az abban található összes karaktert próbálja megtalálni. Contains: igaz értékkel tér vissza, ha a paramétereként megadott karakter(sorozat) benne van a stringben.
String metódusok Keresésre példa: string s = "verylonglongstring"; char [ ] c = new char [ ]{ 'y', 'z', 'o' }; Console.WriteLine(s.IndexOf('r')); // 2 Console.WriteLine(s.IndexOfAny(c)); // 3 Console.WriteLine(s.LastIndexOf('n')); // 16 Console.WriteLine(s.LastIndexOfAny(c)); // 9 Console.WriteLine(s.Contains("long")); // true
String metódusok Módosítás: Replace: az első paraméterének megfelelő karaktereket lecseréli a második paraméterre. Trim: a string elején és végén lévő karaktereket levágja. Substring: kivág egy karaktersorozatot ( paraméterei a kezdő és végindexek). Insert/Remove: hozzáadnak, illetve elvesznek a stringből. ToLower és ToUpper: kis- illetve nagybetűssé alakítják az eredeti stringet.
String metódusok Módosításra példa: string s = "smallstring"; char[ ] c = new char[ ] { 's', 'g' }; Console.WriteLine(s.Replace('s', 'l')); // lmallltring Console.WriteLine(s.Trim(c)); // mallstrin Console.WriteLine(s.Insert(0, "one")); // onesmallstring Console.WriteLine(s.Remove(0, 2)); // allstring Console.WriteLine(s.Substring(0, 3)); // sma Console.WriteLine(s.ToUpper()); // SMALLSTRING Console.WriteLine(s.ToLower()); // smallstring
Vége!