#csharp #programowanie Panowie mam tablicę dwuelementową stringów gdzie są same wartości numeryczne i potrzebuję to zmienić na tablicę dwuwymiarową int,ów.... Zrobiłem coś takiego :
string a; int[][] tablica = new int[tab.Length][];
for (int y = 0; y < tab.Length; y++) { for (int i = 0; i < tab[0].Length; i++) { a = tab[y][i]; tablica[y][i] = StringToInt(a); } } return tablica; }
Gdzie metoda StringToInt to:
static int StringToInt(string liczba) { int wynik; if (!int.TryParse(liczba.Trim(), out wynik)) throw new Exception("Nie udało się skonwertować liczby do int");
return wynik; }
Niestety w wierszu "tablica[y][i] = StringToInt(a);" , wyrzuca mi błąd "Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu." Doradzi mi ktoś ?
@daedalus_pl: Zrobiłem ciut inaczej ale koncepcja ogólnie ta sama ;) Dzięki wielkie, w międzyczasie w sumie też przerobiłem wczytywanie pliku żeby od razu wczytywało do tablicy intów ale i tak dobrze, że rozwiązałem ten problem bo nauczyłem się czegoś nowego ;)
Panowie mam tablicę dwuelementową stringów gdzie są same wartości numeryczne i potrzebuję to zmienić na tablicę dwuwymiarową int,ów.... Zrobiłem coś takiego :
static int[][] TablicaStringdoInt(string[][] tab)
{
string a;
int[][] tablica = new int[tab.Length][];
for (int y = 0; y < tab.Length; y++)
{
for (int i = 0; i < tab[0].Length; i++)
{
a = tab[y][i];
tablica[y][i] = StringToInt(a);
}
}
return tablica;
}
Gdzie metoda StringToInt to:
static int StringToInt(string liczba)
{
int wynik;
if (!int.TryParse(liczba.Trim(), out wynik))
throw new Exception("Nie udało się skonwertować liczby do int");
return wynik;
}
Niestety w wierszu "tablica[y][i] = StringToInt(a);" , wyrzuca mi błąd "Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu."
Doradzi mi ktoś ?
Komentarz usunięty przez autora
@Phoryn inisjalizujesz tylko jeden wymiar tablicy
Czyli jak wpiszę do drugiego kwadracika tab[0].Length to już powinno śmigać ?
tablica[y] = new int[tab[y].Length];
i w pętli niżej zamiast tab[0].Length daj tab[y].Length