Bezpośrednio:
int[] liczby = new int[5];
Osoba[] osoby = new Osoba[2];
lub poprzez wskazanie i dodanie elementów (nie deklarujemy liczby elementów w tablicy):
string[] dniTygodnia = { "poniedziałek", "wtorek", "śr", "cz", "pi", "so", "ni" };
Osoba[] osoby2 = { new Osoba("Jan",37), new Osoba("Anna",22), new Osoba("Krzysztof",11) };
(w klasie Osoba
musi być odpowiedni konstruktor).
Żadna. Chyba, że użyty typ tego wymaga.
Zależy od kontekstu. Np. instrukcja liczby[3] = "sss";
dla tablicy int
zakończy się błędem kompilacji (Cannot implicitly convert type string
to int
). Jeśli mamy jednak typ referencyjny (pochodzący od jakiejś klasy) w tablicy, to obiekty w typach klas pochodnych jak najbardziej mogą być umieszczone na tablicy (korzystamy wtedy z rzutowania w górę).
Po inicjacji tablicy mamy już ustaloną w niej liczbę elementów. Jeśli poszczególnym elementom nie nadaliśmy jawnie wartości, są im przypisywane domyślne (dla typów liczbowych zera
, dla char
pusty znak, dla string
pusty string, dla typów referencyjnych null
). Wprost wymiar tablicy jest stały, więc nie dodamy kolejnych elementów. Możemy albo zmienić wartość już istniejących elementów albo zmienić rozmiar tablicy.
Aby nadpisać istniejący element w tablicy, to odnosimy się po tzw. indeksatorze: liczby[2] = 5;
.
Przykładowy kod do zmiany rozmiaru tablicy:
string[] k = new string[5];
k[0] = "UUU";
k[1] = "ZZZ";
Console.WriteLine(k.Length);
Array.Resize(ref k, 10);
Console.WriteLine("po zmianie");
Console.WriteLine(k.Length);
(potrzebujemy using System;
).
Użycie pętli for
(po indeksie tablicy) lub foreach
.
Pierwszy - czyli po indeksie zero np. k[0]
.
Ostatni - wprost nie mamy możliwości. Możemy jednak sprawdzić wymiar i pobrać odpowiedni indeks np. k[k.Length-1]
.
Bezpośrednio do numerze indeksu.
Dla tablic typów wartościowych możemy skorzystać z klasy Array
:
string[] dniTygodnia = { "poniedziałek", "wtorek", "śr", "cz", "pi", "so", "ni" };
Array.Sort(dniTygodnia);
Dla typów refencyjnych możemy użyć z podobnej konstrukcji:
Osoba[] osoby2 = { new Osoba("Jan", 37), new Osoba("Anna", 22), new Osoba("Krzysztof", 11) };
Array.Sort(osoby2);
ale aby działało to poprawnie, musimy dodać mechanizm porównywania do klasy np. interfejs IComparable<T>
.
Właściwość Lenght
.
Można to zrobić na kilka sposóbów:
- za pomocą pętli
- wyrażenia lambda (zaawansowane)
- inne
Jak można odwrócić elementy w tablicy/kolekcji? w tym kontekście chodzi o odwrócenie kolejności (a nie odwrotne sortowanie)
Za pomocą np. metody Array.Reverse
.
Przykład:
string[] k = new string[5];
k[0] = "UUU";
k[1] = "ZZZ";
Array.Reverse(k);
Wprost nie ma mechanizmu na usuwanie elementów. Możemy zmienić rozmiar (w sposób opisany wcześniej), wtedy zostaną uciętę nadmiarowe elementy. Możemy przenieść wybrane elementy do pomocniczej tablicy i potem przypisać wartość zmiennej tablicowej.