Jak mogę skopiować część tablicy do innej tablicy?
Rozważ, że mam
int[] a = {1,2,3,4,5};
Teraz, jeśli podam indeks początkowy i końcowy tablicy a
, powinien on zostać skopiowany do innej tablicy.
Na przykład jeśli podam indeks początkowy jako 1, a indeks końcowy jako 3, elementy 2, 3, 4 powinny zostać skopiowane w nowej tablicy.
Zobacz to pytanie . Najpopularniejsze odpowiedzi to LINQ Take () i Skip (), a także Array.CopyTo ().
W tym miejscu opisano rzekomo szybszą metodę rozszerzania .
źródło
Gdzie Array jest klasą mającą metodę Copy, która kopiuje element tablicy do tablicy b.
Podczas kopiowania z jednej tablicy do drugiej, musisz podać ten sam typ danych do innej tablicy, której kopiujesz.
źródło
Uwaga: znalazłem to pytanie, szukając jednego z kroków w odpowiedzi na temat zmiany rozmiaru istniejącej tablicy.
Pomyślałem więc, że dodam te informacje tutaj, na wypadek, gdyby ktoś inny szukał sposobu wykonania kopii z zakresu jako częściowej odpowiedzi na pytanie o zmianę rozmiaru tablicy.
Dla każdego, kto znajdzie to pytanie i szuka tego samego, co ja, jest to bardzo proste:
gdzie T jest typem, tj. gdzie zadeklarowano zmienną tablicową:
Ta metoda obsługuje sprawdzanie wartości null, a także newSize == oldSize nie wywołujące żadnego efektu i oczywiście po cichu obsługuje przypadek, w którym jedna z tablic jest dłuższa od drugiej.
Więcej informacji można znaleźć w artykule MSDN .
źródło
W przypadku, gdy chcesz zaimplementować własny Array.Copy metodę .
Metoda statyczna o typie ogólnym.
Implementacja metody brzegowej.
źródło