c# - How to get a subset of an array

Get a subset of 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 get a subset of an Array. So, we have to get a specified amount of elements from an Array from a specified position and convert it into another Array instance. In this .net c# example code, we will take three elements after two elements from an Array object. And we will convert the result into an Array instance.

To achieve this we used Enumerable Skip(), Take(), and ToArray() methods. At the begging of this expression, we will skip two elements from the Array instance, then we will take three elements from this starting position and finally, we will convert the returned sequence to an Array object. So we get a specified subset of an Array object.

The Enumerable Skip() method bypasses a specified number of elements in a sequence and then returns the remaining elements. The Skip() method has a parameter named count. The count parameter is the number of elements to skip before returning the remaining elements. This method returns an IEnumerable<T> that contains the elements that occur after the specified index in the input sequence. The Skip() method throws ArgumentNullException if the source sequence is null.

The Enumerable Take(int count) method overload returns a specified number of contiguous elements from the start of a sequence. The count parameter is the number of elements to return. The Take(Int32) method returns an IEnumerable<T> that contains the specified number of elements from the start of the input sequence. This method throws ArgumentNullException if the source sequence is null.

The Enumerable ToArray() method creates an array from an IEnumerable<T>. This method returns an array that contains the elements from the input sequence. It throws ArgumentNullException if the source sequence is null.
array-subset.aspx

<%@ Page Language="C#" AutoEventWireup="true"%>  
  
<!DOCTYPE html>  
<script runat="server"> 
    protected void Button1_Click(object sender, System.EventArgs e)  
    {
        string[] colors = new string[]
        {
            "BlueViolet",
            "Cornsilk",
            "Cyan",
            "DarkBlue",
            "Bisque",
            "AliceBlue"
        };

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

        //this line return a subset an array
        string[] arraySubset = colors.Skip(2).Take(3).ToArray();
        
        Label1.Text += "<br />colors sub array [element after 2 and count 3].........<br />";
        foreach (string color in arraySubset)
        {
            Label1.Text += color + "<br />";
        }
    }  
</script>  
  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head id="Head1" runat="server">  
    <title>c# linq example - array subset</title>  
</head>  
<body>  
    <form id="form1" runat="server">  
    <div>  
        <h2 style="color:DarkBlue; font-style:italic;">  
            c# linq example - array subset
        </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="array subset"  
            OnClick="Button1_Click"
            Height="40"  
            Font-Bold="true"  
            />  
    </div>  
    </form>  
</body>  
</html>
More c# examples