Queryable.ElementAt<TSource>(IQueryable<TSource>, Int32) メソッド

定義

シーケンス内の指定されたインデックス位置にある要素を返します。Returns the element at a specified index in a sequence.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static TSource ElementAt(System::Linq::IQueryable<TSource> ^ source, int index);
public static TSource ElementAt<TSource> (this System.Linq.IQueryable<TSource> source, int index);
static member ElementAt : System.Linq.IQueryable<'Source> * int -> 'Source
<Extension()>
Public Function ElementAt(Of TSource) (source As IQueryable(Of TSource), index As Integer) As TSource

型パラメーター

TSource

source の要素の型。The type of the elements of source.

パラメーター

source
IQueryable<TSource>

返される要素が含まれる IQueryable<T>An IQueryable<T> to return an element from.

index
Int32

取得する要素の、0 から始まるインデックス。The zero-based index of the element to retrieve.

戻り値

TSource

source 内の指定した位置にある要素。The element at the specified position in source.

例外

sourcenull です。source is null.

index に 0 より小さい値が指定されています。index is less than zero.

次のコード例では、ElementAt<TSource>(IQueryable<TSource>, Int32) を使用して、シーケンス内の特定の位置にある要素を返す方法を示します。The following code example demonstrates how to use ElementAt<TSource>(IQueryable<TSource>, Int32) to return an element at a specific position in a sequence.

string[] names = { "Hartono, Tommy", "Adams, Terry", 
                   "Andersen, Henriette Thaulow", 
                   "Hedlund, Magnus", "Ito, Shu" };

Random random = new Random(DateTime.Now.Millisecond);

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

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

/*
    This code produces the following sample output.
    Yours may be different due to the use of Random.

    The name chosen at random is 'Ito, Shu'.
*/

Dim names() As String = {"Hartono, Tommy", "Adams, Terry", _
                   "Andersen, Henriette Thaulow", _
                   "Hedlund, Magnus", "Ito, Shu"}

Dim rand As New Random(DateTime.Now.Millisecond)

Dim name As String = _
    names.AsQueryable().ElementAt(rand.Next(0, names.Length))

MsgBox(String.Format("The name chosen at random is '{0}'.", name))

' This code produces the following sample output.
' Yours may be different due to the use of Random.
'
' The name chosen at random is 'Ito, Shu'.

注釈

ElementAt<TSource>(IQueryable<TSource>, Int32) メソッドは、構築されたジェネリックメソッドとしての呼び出し ElementAt<TSource>(IQueryable<TSource>, Int32) 自体を表す MethodCallExpression を生成します。The ElementAt<TSource>(IQueryable<TSource>, Int32) method generates a MethodCallExpression that represents calling ElementAt<TSource>(IQueryable<TSource>, Int32) itself as a constructed generic method. 次に、source パラメーターの Provider プロパティによって表される IQueryProviderExecute<TResult>(Expression) メソッドに MethodCallExpression を渡します。It then passes the MethodCallExpression to the Execute<TResult>(Expression) method of the IQueryProvider represented by the Provider property of the source parameter.

ElementAt<TSource>(IQueryable<TSource>, Int32) の呼び出しを表す式ツリーを実行した結果として発生するクエリ動作は、source パラメーターの型の実装によって異なります。The query behavior that occurs as a result of executing an expression tree that represents calling ElementAt<TSource>(IQueryable<TSource>, Int32) depends on the implementation of the type of the source parameter. 期待される動作は、source内の index 位置にある項目を返すことです。The expected behavior is that it returns the item at position index in source.

適用対象