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


シーケンス内の指定したインデックス位置にある要素を返します。インデックスが範囲外の場合は既定値を返します。Returns the element at a specified index in a sequence or a default value if the index is out of range.

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



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



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


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



の範囲外の場合は TSourcedefaultindex(source)。それ以外の場合は source で指定された位置にある要素。default(TSource) if index is outside the bounds of source; otherwise, the element at the specified position in source.


sourcenull です。source is null.

ElementAtOrDefault<TSource>(IQueryable<TSource>, Int32) を使用する方法を次のコード例に示します。The following code example demonstrates how to use ElementAtOrDefault<TSource>(IQueryable<TSource>, Int32). この例では、ソースシーケンスの範囲外にある index の値を使用します。This example uses a value for index that is outside the bounds of the source sequence.

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

int index = 20;

string name = names.AsQueryable().ElementAtOrDefault(index);

    "The name chosen at index {0} is '{1}'.",
    String.IsNullOrEmpty(name) ? "[NONE AT THIS INDEX]" : name);

    This code produces the following output:

    The name chosen at index 20 is '[NONE AT THIS INDEX]'.

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

Dim index As Integer = 20

Dim name As String = names.AsQueryable().ElementAtOrDefault(index)

MsgBox(String.Format("The name at index {0} is '{1}'.", _
    index, IIf(String.IsNullOrEmpty(name), "[NONE AT THIS INDEX]", name)))

' This code produces the following output:
' The name at index 20 is '[NONE AT THIS INDEX]'.


ElementAtOrDefault<TSource>(IQueryable<TSource>, Int32) メソッドは、構築されたジェネリックメソッドとしての呼び出し ElementAtOrDefault<TSource>(IQueryable<TSource>, Int32) 自体を表す MethodCallExpression を生成します。The ElementAtOrDefault<TSource>(IQueryable<TSource>, Int32) method generates a MethodCallExpression that represents calling ElementAtOrDefault<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.

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