Queryable.Single Queryable.Single Queryable.Single Queryable.Single Method

Definition

シーケンスの 1 つの特定の要素を返します。 Returns a single, specific element of a sequence.

Overloads

Single<TSource>(IQueryable<TSource>) Single<TSource>(IQueryable<TSource>) Single<TSource>(IQueryable<TSource>) Single<TSource>(IQueryable<TSource>)

シーケンスの唯一の要素を返し、シーケンス内の要素が 1 つだけでない場合は例外をスローします。 Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence.

Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)

指定された条件を満たす、シーケンスの唯一の要素を返し、そのような要素が複数存在する場合は例外をスローします。 Returns the only element of a sequence that satisfies a specified condition, and throws an exception if more than one such element exists.

Single<TSource>(IQueryable<TSource>) Single<TSource>(IQueryable<TSource>) Single<TSource>(IQueryable<TSource>) Single<TSource>(IQueryable<TSource>)

シーケンスの唯一の要素を返し、シーケンス内の要素が 1 つだけでない場合は例外をスローします。 Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence.

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

Type Parameters

TSource

要素の型ソースします。 The type of the elements of source.

パラメーター

source
IQueryable<TSource>

1 つの要素を返す IQueryable<T> An IQueryable<T> to return the single element of.

Returns

TSource TSource TSource TSource

入力シーケンスの 1 つの要素。 The single element of the input sequence.

Exceptions

source には複数の要素があります。 source has more than one element.

Examples

次のコード例は、使用する方法を示しますSingle<TSource>(IQueryable<TSource>)を配列の唯一の要素を選択します。The following code example demonstrates how to use Single<TSource>(IQueryable<TSource>) to select the only element of an array.

// Create two arrays.
string[] fruits1 = { "orange" };
string[] fruits2 = { "orange", "apple" };

// Get the only item in the first array.
string fruit1 = fruits1.AsQueryable().Single();

Console.WriteLine("First query: " + fruit1);

try
{
    // Try to get the only item in the second array.
    string fruit2 = fruits2.AsQueryable().Single();
    Console.WriteLine("Second query: " + fruit2);
}
catch (System.InvalidOperationException)
{
    Console.WriteLine(
        "Second query: The collection does not contain exactly one element."
        );
}

/*
    This code produces the following output:

    First query: orange
    Second query: The collection does not contain exactly one element
*/

' Create two arrays.
Dim fruits1() As String = {"orange"}
Dim fruits2() As String = {"orange", "apple"}

' Get the only item in the first array.
Dim result As String = fruits1.AsQueryable().Single()

' Display the result.
MsgBox("First query: " & result)

Try
    ' Try to get the only item in the second array.
    Dim fruit2 As String = fruits2.AsQueryable().Single()
    MsgBox("Second query: " + fruit2)
Catch
    MsgBox("Second query: The collection does not contain exactly one element.")
End Try

' This code produces the following output:

' First query: orange
' Second query: The collection does not contain exactly one element.

Remarks

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

呼び出し元を表す式ツリーを実行した結果として発生するクエリの動作Single<TSource>(IQueryable<TSource>)の型の実装によって異なります、sourceパラメーター。The query behavior that occurs as a result of executing an expression tree that represents calling Single<TSource>(IQueryable<TSource>) depends on the implementation of the type of the source parameter. 想定される動作では、唯一の要素を返しますsourceします。The expected behavior is that it returns the only element in source.

Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)

指定された条件を満たす、シーケンスの唯一の要素を返し、そのような要素が複数存在する場合は例外をスローします。 Returns the only element of a sequence that satisfies a specified condition, and throws an exception if more than one such element exists.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static TSource Single(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, bool> ^> ^ predicate);
public static TSource Single<TSource> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,bool>> predicate);
static member Single : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, bool>> -> 'Source
<Extension()>
Public Function Single(Of TSource) (source As IQueryable(Of TSource), predicate As Expression(Of Func(Of TSource, Boolean))) As TSource

Type Parameters

TSource

要素の型ソースします。 The type of the elements of source.

パラメーター

source
IQueryable<TSource>

1 つの要素を返す IQueryable<T> An IQueryable<T> to return a single element from.

predicate
Expression<Func<TSource,Boolean>>

要素が条件を満たしているかどうかをテストする関数。 A function to test an element for a condition.

Returns

TSource TSource TSource TSource

predicate の条件を満たす、入力シーケンスの 1 つの要素。 The single element of the input sequence that satisfies the condition in predicate.

Exceptions

source または predicatenull です。 source or predicate is null.

predicate の条件を満たす要素はありません。 No element satisfies the condition in predicate. - または - -or- predicate の条件を満たす要素が複数あります。 More than one element satisfies the condition in predicate. - または - -or- ソース シーケンスが空です。 The source sequence is empty.

Examples

次のコード例は、使用する方法を示しますSingle<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)条件を満たす、配列の唯一の要素を選択します。The following code example demonstrates how to use Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) to select the only element of an array that satisfies a condition.

string[] fruits = { "apple", "banana", "mango", 
                      "orange", "passionfruit", "grape" };

// Get the only string in the array whose length is greater than 10.
string fruit1 = fruits.AsQueryable().Single(fruit => fruit.Length > 10);

Console.WriteLine("First Query: " + fruit1);

try
{
    // Try to get the only string in the array
    // whose length is greater than 15.
    string fruit2 = fruits.AsQueryable().Single(fruit => fruit.Length > 15);
    Console.WriteLine("Second Query: " + fruit2);
}
catch (System.InvalidOperationException)
{
    Console.Write("Second Query: The collection does not contain ");
    Console.WriteLine("exactly one element whose length is greater than 15.");
}

/*
    This code produces the following output:

    First Query: passionfruit
    Second Query: The collection does not contain exactly one 
    element whose length is greater than 15.
 */

Dim fruits() As String = _
    {"apple", "banana", "mango", "orange", "passionfruit", "grape"}

' Get the only string in the array whose length is greater than 10.
Dim result As String = _
    fruits.AsQueryable().Single(Function(fruit) fruit.Length > 10)

' Display the result.
MsgBox("First Query: " & result)

Try
    ' Try to get the only string in the array
    ' whose length is greater than 15.
    Dim fruit2 As String = fruits.AsQueryable().Single(Function(fruit) fruit.Length > 15)
    MsgBox("Second Query: " + fruit2)
Catch
    Dim text As String = "Second Query: The collection does not contain "
    text = text & "exactly one element whose length is greater than 15."
    MsgBox(text)
End Try

' This code produces the following output:

' First Query: passionfruit
' Second Query: The collection does not contain exactly one 
'   element whose length is greater than 15.

Remarks

このメソッドは、少なくとも 1 つのパラメーター型のExpression<TDelegate>型引数は、のいずれか、Func<T,TResult>型。This method has at least one parameter of type Expression<TDelegate> whose type argument is one of the Func<T,TResult> types. ラムダ式で、これらのパラメーターを渡すことができますにコンパイルされると、Expression<TDelegate>します。For these parameters, you can pass in a lambda expression and it will be compiled to an Expression<TDelegate>.

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

呼び出し元を表す式ツリーを実行した結果として発生するクエリの動作Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)の型の実装によって異なります、sourceパラメーター。The query behavior that occurs as a result of executing an expression tree that represents calling Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) depends on the implementation of the type of the source parameter. 想定される動作では、唯一の要素を返しますsourceによって指定された条件を満たすpredicateします。The expected behavior is that it returns the only element in source that satisfies the condition specified by predicate.

Applies to