Skip to main content
.NET Framework Class Library
EnumerableElementAtTSource Method

Returns the element at a specified index in a sequence.

Namespace:   System.Linq
Assemblies:   System.Linq (in System.Linq.dll)
  System.Core (in System.Core.dll)
<[%$TOPIC/bb299233_en-us_VS_110_1_0_0_0_0%]> _
Public Shared Function ElementAt(Of TSource) ( _
	source As [%$TOPIC/bb299233_en-us_VS_110_1_0_0_0_1%](Of TSource), _
	index As [%$TOPIC/bb299233_en-us_VS_110_1_0_0_0_2%] _
) As TSource
public static TSource ElementAt<TSource>(
	this [%$TOPIC/bb299233_en-us_VS_110_1_0_1_0_0%]<TSource> source,
	[%$TOPIC/bb299233_en-us_VS_110_1_0_1_0_1%] index
generic<typename TSource>
static TSource ElementAt(
	[%$TOPIC/bb299233_en-us_VS_110_1_0_2_0_1%]<TSource>^ source, 
	[%$TOPIC/bb299233_en-us_VS_110_1_0_2_0_2%] index
static member ElementAt : 
        source:[%$TOPIC/bb299233_en-us_VS_110_1_0_3_0_0%]<'TSource> * 
        index:[%$TOPIC/bb299233_en-us_VS_110_1_0_3_0_1%] -> 'TSource 
JScript does not support generic types or methods.

Type Parameters


The type of the elements of source.


Type: System.Collections.GenericIEnumerableTSource

An IEnumerableT to return an element from.

Type: SystemInt32

The zero-based index of the element to retrieve.

Return Value

Type: TSource
The element at the specified position in the source sequence.

Usage Note

In Visual Basic and C#, you can call this method as an instance method on any object of type IEnumerableTSource. When you use instance method syntax to call this method, omit the first parameter. For more information, see Extension Methods (Visual Basic) or Extension Methods (C# Programming Guide).

source is .


index is less than 0 or greater than or equal to the number of elements in source.


If the type of source implements IListT, that implementation is used to obtain the element at the specified index. Otherwise, this method obtains the specified element.

This method throws an exception if index is out of range. To instead return a default value when the specified index is out of range, use the ElementAtOrDefaultTSource method.


The following code example demonstrates how to use ElementAtTSource to return an element at a specific position.

        ' Create an array of strings. 
        Dim names() As String = _
            {"Hartono, Tommy", "Adams, Terry", "Andersen, Henriette Thaulow", "Hedlund, Magnus", "Ito, Shu"}

        Dim random As Random = New Random(DateTime.Now.Millisecond)

        ' Get a string at a random index within the array. 
        Dim name As String = names.ElementAt(random.Next(0, names.Length))

        ' Display the output.
        MsgBox("The name chosen at random is " & name)

        ' This code produces the following output: 
        ' The name chosen at random is Ito, Shu
string[] names =
                { "Hartono, Tommy", "Adams, Terry", "Andersen, Henriette Thaulow", 

                    "Hedlund, Magnus", "Ito, Shu" };
            Random random = new Random(DateTime.Now.Millisecond);

            string name = names.ElementAt(random.Next(0, names.Length));

            Console.WriteLine("The name chosen at random is '{0}'.", name);

             This code produces the following sample output:

             The name chosen at random is 'Ito, Shu'.
Version Information

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

XNA Framework

Supported in: 3.0

.NET for Windows Phone apps

Supported in: Windows Phone 8.1, Windows Phone Silverlight 8.1, Windows Phone Silverlight 8

Portable Class Library

Supported in: Portable Class Library