OneBite.Dev - Coding blog in a bite size

Split An Array Into Smaller Arrays In C#

Code snippet for how to Split An Array Into Smaller Arrays In C# with sample and detail explanation

Splitting an array into smaller arrays is a common task in programming. In this short article, we will show you an easy method of doing this in C#.

Code snippet to Split an Array into Smaller Arrays

Here is a quick and easy code snippet that breaks down an existing array into smaller arrays:

public List<T[]> SplitArray<T>(T[] arrayToSplit, int size)
{
    var list = new List<T[]>();

    for (int i = 0; i < arrayToSplit.Length; i += size)
    {
        T[] chunk = new T[Math.Min(size, arrayToSplit.Length - i)];
        Array.Copy(arrayToSplit, i, chunk, 0, chunk.Length);
        list.Add(chunk);
    }

    return list;
}

You can then use this function like this:

int[] array = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
List<int[]> splitArrays = SplitArray(array, 3);

This code will split the original array into smaller arrays each with a maximum length of 3.

Code Explanation for Splitting an Array into Smaller Arrays

Here is a step by step guide on how the code works.

First, we declare the generic function SplitArray that takes two parameters: arrayToSplit which is the array you want to split, and size which is the size of the smaller arrays you want to create.

We then declare a new list of arrays list, which will store the smaller arrays.

We then use a for loop to iterate over the arrayToSplit. The loop increments i by size each time it iterates, which means it will move to the next chunk of the array on each iteration.

Inside the loop, we create a new array chunk. The size of this array is either size or the remaining number of elements in arrayToSplit, whichever is smaller. This is to make sure we don’t go out of the bounds of the array on the final chunk which might be smaller than size.

After that, we use Array.Copy to copy a chunk of the arrayToSplit into chunk.

We then add chunk to the list.

Finally, we return list which now contains the original array broken down into smaller arrays of a maximum size of size.

The final code outside the function creates a new array, calls the SplitArray function with this array and a chunk size, and stores the result. In this example, it will create an array of integers from 0 to 9, and split it into smaller arrays each with a maximum size of 3.

c-sharp