Dodawanie tablic

0

Witam,

Chcę się dowiedzieć, czy możliwe jest dodawanie tablic do siebie (na tym forum w pewnym temacie przeczytałam, że nie, aczkolwiek wynikiem moich operacji musi być tablica).
Do rzeczy:
mam w programie tablicę, jednak z pewnych względów muszę mieć trzy tablice i złączyć je w jedną (ponieważ mają one różne źródła danych, aczkolwiek są one tego samego typu). Czy możliwe jest łączenie tablic? A jeżeli nie, czy mogę do tego celu wykorzystać listę a następnie przekonwertować to na tablicę? I odwrotnie, czy istnieje sposób na rozdzielenie tych tablic, czy też pozostaje mi kopiowanie z tej jednej tablicy do trzech oddzielnych tablic.

1

czemu tablica a nie np Lista? Wtedy mozna bez problemow dodawac

golych tablic nie polaczysz

musisz:

  1. stworzyc tablice o wielkosci tab1.length + tab2.length + tab3.length
  2. przepisywac wszystko z tablicy na odpowiedni indeks
var current_index = 0;
for (int i = 0 ; i < tab1.length ; i++)
{
  wynikowa[current_index  + i] = tab1[i];
}
current_index += tab1.length;
for (int i = 0 ; i < tab2.length ; i++)
{
  wynikowa[current_index  + i] = tab2[i];
}
current_index += tab2.length;
for (int i = 0 ; i < tab3.length ; i++)
{
  wynikowa[current_index  + i] = tab3[i];
}

jak widzisz petla sie powtarza, wiec mozna z niej zrobic ladna funkcje ;)

1
         int[] x = new int[] { 1, 2, 3 };
         int[] y = new int[] { 4, 5, 6 };
         int[] z = x.Concat(y).ToArray();

Np cos takiego? 3 min googlowwania :D. Tak jest mozliwe laczenie tablic. Rozlczanie tablic tez jest mozliwe ale mysle ze w zlym kierunku idziesz -> https://stackoverflow.com/questions/11207526/best-way-to-split-an-array przyklad rozlaczania tablic. Jesli zalezy ci na mozliwosci dodawania i odejmowania elementow to wlasnie do tego celu zostala stworzona lista i z niej powinienes skorzystac :)

0

Tak, nie ogarniam list, nie ogarniam tablic. Chciałabym się po prostu tego nauczyć. Szczerze mówiąc dawno nie zaglądałam do C# a teraz mam z tym nie lada problem.

Bardzo dziękuję Panom za odpowiedź. :)

2

Lajka mozesz zapodac nam za pomoc :) a co do list czy tablic to sa one chyba w zdecydowanej wiekszosci jezykow :). Wystarczy zapameitc ze tablica ma okrelsony rozmair a lista nie ;). Spokojnie przejdz jakas ksiazke sobie przeczytaj na poczatek by czaic bazie zaczniej od tablic a pozniej jak na listy wskoczsz to nie bedizesz chcial za bardzo wracac :D

1

Lista też jest stworzona na bazie tablic . Prosty mechanizm . Jak brakuje miejsca to jest tworzona nowa większa tablica , do której jest kopiowana stara tablica.
Nie ma żadnego hokus pokus

1

A po co te okropne pętle?

var c = new int[a.Length + b.Length];
Array.Copy(a, c, a.Length);
Array.Copy(b, 0, c, a.Length, b.Length);
0
Akihito napisał(a):

Lajka mozesz zapodac nam za pomoc :) a co do list czy tablic to sa one chyba w zdecydowanej wiekszosci jezykow :). Wystarczy zapameitc ze tablica ma okrelsony rozmair a lista nie ;). Spokojnie przejdz jakas ksiazke sobie przeczytaj na poczatek by czaic bazie zaczniej od tablic a pozniej jak na listy wskoczsz to nie bedizesz chcial za bardzo wracac :D

Okej, należy się. :) A masz jakąś książkę godną polecenia? Konkretną, czy to nie ma zbyt wielkiego znaczenia?

1 użytkowników online, w tym zalogowanych: 0, gości: 1