No i właśnie o tym myślałem kiedy mówiłem "niedosyt" - nie pasuje mi przede wszystkim konieczność "wymiarowania" tablicy.
Że już nie wspomnę o tym samym typie danych dla wszystkich składowych. Choć z drugiej strony, jest
Convert
Ale czy nie byłoby fajnie nie pamiętać o tym i mieć np. taką tablicę:
myArray[0] = {string, int, int, int};
myArray[1] = {string, int, int};
myArray[2] = {string, int, int, int, int};
bo właśnie coś takiego chciałem uzyskać na początku (okazało się to błędnym podejściem).
A poniżej mój przykład - proszę o ewentualne uwagi.
Założenie jest takie:
Kiedy jestem zmuszony wstać od kompa bo browar i fajki się skończyły, wychodzę do sklepu. A, że jestem zajebistym farciarzem po drodze spotykam wiele babeczek, którym robię zdjęcia. Każda, która z 50ciu metrów ode mnie, nie omija mnie szerokim łukiem to "niunia". Reszta - "brzydula".
Wracam do kompa i zapisuję w katalogu o nazwie dd.MM wszystkie fotki z danego dnia (dd) w miesiącu (MM): niunia_HH.mm.jpg, brzydula_HH.mm.jpg (gdzie HH to godzina a mm to minuty).
Do tego w danym miesiącu mogłem zrobić kilka innych fotek tematycznych nie przypisanych do konkretnego dnia, ale do tematu, więc są też inne katalogi: Porsche, DogShit, RozbityBrowar...
Piwka sporo więc chcę zrobić zestawienie miesięczne kiedy to mi się skończyły zapasy (dzień, w którym musiałem wyjść) i tych babeczek co mnie nie omijają bo przecież nie pamiętam co się działo w przeciągu całego miesiąca. A do tego uparłem się żeby wynik był typu array:
private string[][] zliczNiunie(string katalogMiesieczny)
{
//Inicjuj potrzebne zmienne
DirectoryInfo dir;
FileInfo file;
List<string> listaNazwKat = new List<string>();
//pobierz listę wszystkich podkatalogów z katalogu miesięcznego
string[] listaKat = Directory.GetDirectories(katalogMiesieczny);
//wzorzec dla podkatalogów
string sKatDzien = "^\\d{2}.\\d{2}$"; //nazwy podkatalogów w formie "dd.MM"
//czyli np.: "01.11" = 1. listopada
//policz katalogi pasujące do wzorca
foreach (string kat in listaKat)
{
//pobierz info o bieżącym katalogu
dir = new DirectoryInfo(kat);
//jeżeli nazwa podkatalogu pasuje do wzorca...
if (System.Text.RegularExpressions.Regex.IsMatch(dir.Name, sKatDzien))
{
listaNazwKat.Add(dir.Name); //...dodaj nazwę tego podkatalogu do listy pasujących
}
}
//znamy ilość pasujących katalogów więc inicjujemy tablicę zwracaną
string[][] kiedyJakaNiunia = new string[listaNazwKat.Count][];
//dla każdego, pięknego dnia, którego "nie zmarnowałem" przed kompem...
for (int i = 0; i < listaNazwKat.Count; i++)
{
//pobierz listę plików ze zdjęciami tych pięknych akurat...
string[] listaPieknych = Directory.GetFiles(katalogMiesieczny + listaNazwKat[i] + @"\", "niunia_*");
//... i zainicjuj "podtablicę" pięknych w danym dniu:
kiedyJakaNiunia[i] = new string[listaPieknych.Length + 1];
kiedyJakaNiunia[i][0] = listaNazwKat[i];
//dla każdej pięknej...
for (int j = 0; j < listaPieknych.Length; j++)
{
file = new FileInfo(listaPieknych[j]);
kiedyJakaNiunia[i][j + 1] = file.Name;
}
}
//no i w końcu: przypomnij mi kiedy widziałem te wszystkie piękne...
return kiedyJakaNiunia;
}
A na poważnie proszę o wszelką konstruktywną krytykę do powyższego.
Może można prościej...
Pozdro