/// <summary> /// Zwraca tablicę obiektów ByteArray będących efektem podzielenie bieżącej tablicy na równe części. /// Jeśli ostatnia część jest mniejsza od wskazanej długości, można wskazać czy ma ona być dopełniana /// do tej wielkości, a jesli tak to jaką wartość mają przyjąć dodane bajty. /// </summary> /// <param name="splitLength">Określa jak długie mają być wynikowe części.</param> /// <param name="padding">Czy dopełniać ostatnią część do długości podziału.</param> /// <param name="paddingByte">Wskazuje jaką wartość mają mieć bajty dodane w ostatniej części.</param> /// <returns>Wynik podziału bieżącej tablicy na części o podanej długości.</returns> public ByteArray[] Slice(int splitLength, bool padding, byte paddingByte) { int slices = Length / splitLength; if (Length % splitLength != 0) { slices++; } ByteArray[] result = new ByteArray[slices]; for (int i = 0; i < slices; i++) { ByteArray slice = Extract(i * splitLength, splitLength); if (slice.Length < splitLength && padding) { slice.SetLength(splitLength, paddingByte); } result[i] = slice; } return(result); }