9.8. Inserting and Removing Items from an Array

Problem

You need the ability to insert and remove items from a standard array (System.Array). When an item is inserted, it should not overwrite the item where it is being inserted; instead, it should be inserted between the element at that index and the previous index. When an item is removed, the void left by the element should be closed by shifting around the other elements in the array. However, the Array type has no usable method to perform these operations.

Solution

If possible, switch to an ArrayList instead. If this is not possible, use the approach shown in the following class. Two methods insert and remove items from the array. The InsertIntoArray method will insert an item into the array without overwriting any data that already exists in the array. The RemoveFromArray will remove an element from the array:

using System; public class ArrayUtilities { public void InsertIntoArray(Array target, object value, int index) { if (index < target.GetLowerBound(0) || index > target.GetUpperBound(0)) { throw (new ArgumentOutOfRangeException("index", index, "Array index out of bounds.")); } else { Array.Copy(target, index, target, index + 1, target.Length - index - 1); } target.SetValue(value, index); } public void RemoveFromArray(Array target, int index) { if (index < target.GetLowerBound(0) || index > target.GetUpperBound(0)) { throw (new ArgumentOutOfRangeException("index", index, "Array index out of bounds.")); } else if (index ...

Get C# Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.