c# - How to delete an element from an array

Delete an element from an Array
The Array class provides methods for creating, manipulating, searching, and sorting arrays. The Array class is not part of the System.Collections namespaces. However, it is still considered a collection because it is based on the IList interface. An element is a value in an Array. The length of an Array is the total number of elements it can contain. The Array has a fixed capacity.

The following .net c# tutorial code demonstrates how we can delete an element from an Array. That means we will remove/delete an element from an Array instance and reduce the Array length and reallocate the Array elements. But there is no direct method in the Array class to delete an element from an Array object.

So we have to perform a series of tasks to delete an element from the Array object. In this .net c# example code, we will use the Array class Resize() method, Enumerable class ToList() method and List class RemoveAt() method to delete/remove an element from an Array instance.

In the beginning, we will convert the Array instance to a List object by using the Enumerable class ToList() method. Then we will remove the specified item from the List instance using the List class RemoveAt() method. Then we will resize the Array instance using the Array class Resize() method. We will set the Array new length to less than one instead of the original Array length.

Finally, we will iterate through the Array elements and reset their element value. As a result, the specified Array element will be deleted from the Array instance.

The Enumerable ToList() method creates a List<T> from an IEnumerable<T>. The List RemoveAt() method removes the element at the specified index of the List<T>.The Array Resize() method changes the number of elements of a one-dimensional Array to the specified new size.
array-delete-element.aspx

<%@ Page Language="C#" AutoEventWireup="true"%>  

<!DOCTYPE html>  
<script runat="server">  
    protected void Button1_Click(object sender, System.EventArgs e)  
    {
        string[] birds = new string[]
        {
            "Crimson Sunbird",
            "Italian Sparrow",
            "Russet Sparrow",
            "Swahili Sparrow",
            "Painted Finch"
        };

        Label1.Text = "birds array.........<br />";
        foreach (string s in birds)
        {
            Label1.Text += s + "<br />";
        }

        List<string> birdslist = birds.ToList();
        birdslist.RemoveAt(2);

        Array.Resize(ref birds,birds.Length -1);

        for(int i=0;i<birds.Length;i++)
        {
            birds[i] = birdslist[i];
        }

        Label1.Text += "<br />birds array [after remove element from index 2].........<br />";
        foreach (string s in birds)
        {
            Label1.Text += s + "<br />";
        }
    }  
</script>  

<html xmlns="http://www.w3.org/1999/xhtml">  
<head id="Head1" runat="server">  
    <title>c# example - array delete element</title>  
</head>  
<body>  
    <form id="form1" runat="server">  
    <div>  
        <h2 style="color:DarkBlue; font-style:italic;">  
            c# example - array delete element
        </h2>  
        <hr width="550" align="left" color="LightBlue" />    

        <asp:Label   
            ID="Label1"   
            runat="server"  
            Font-Size="Large"  
            >  
        </asp:Label>  
        <br />
        <asp:Button   
            ID="Button1"   
            runat="server"   
            Text="delete array element"  
            OnClick="Button1_Click"
            Height="40"  
            Font-Bold="true"  
            />  
    </div>  
    </form>  
</body>  
</html>