O'Reilly logo

C# Cookbook by Jay Hilyard, Stephen Teilhet

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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 ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required