Queryable.Select Metoda

Definice

Projektuje každý prvek sekvence do nového formuláře.Projects each element of a sequence into a new form.

Přetížení

Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>)

Projektuje každý prvek sekvence do nového formuláře zahrnutím indexu elementu.Projects each element of a sequence into a new form by incorporating the element's index.

Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>)

Projektuje každý prvek sekvence do nového formuláře.Projects each element of a sequence into a new form.

Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>)

Projektuje každý prvek sekvence do nového formuláře zahrnutím indexu elementu.Projects each element of a sequence into a new form by incorporating the element's index.

public:
generic <typename TSource, typename TResult>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IQueryable<TResult> ^ Select(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, int, TResult> ^> ^ selector);
public static System.Linq.IQueryable<TResult> Select<TSource,TResult> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,int,TResult>> selector);
static member Select : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, int, 'Result>> -> System.Linq.IQueryable<'Result>
<Extension()>
Public Function Select(Of TSource, TResult) (source As IQueryable(Of TSource), selector As Expression(Of Func(Of TSource, Integer, TResult))) As IQueryable(Of TResult)

Parametry typu

TSource

Typ prvků source .The type of the elements of source.

TResult

Typ hodnoty vrácené funkcí reprezentovanou selector .The type of the value returned by the function represented by selector.

Parametry

source
IQueryable<TSource>

Sekvence hodnot do projektu.A sequence of values to project.

selector
Expression<Func<TSource,Int32,TResult>>

Funkce projekce, která se má použít u každého prvkuA projection function to apply to each element.

Návraty

IQueryable<TResult>

IQueryable<T>Jejichž prvky jsou výsledkem vyvolání funkce projekce u každého prvku source .An IQueryable<T> whose elements are the result of invoking a projection function on each element of source.

Výjimky

source nebo selector je null .source or selector is null.

Příklady

Následující příklad kódu ukazuje, jak použít Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) pro projektování na základě sekvence hodnot a použití indexu každého prvku v projektovém formuláři.The following code example demonstrates how to use Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) to project over a sequence of values and use the index of each element in the projected form.

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

// Project an anonymous type that contains the
// index of the string in the source array, and
// a string that contains the same number of characters
// as the string's index in the source array.
var query =
    fruits.AsQueryable()
    .Select((fruit, index) =>
                new { index, str = fruit.Substring(0, index) });

foreach (var obj in query)
    Console.WriteLine("{0}", obj);

/*
    This code produces the following output:

    { index = 0, str =  }
    { index = 1, str = b }
    { index = 2, str = ma }
    { index = 3, str = ora }
    { index = 4, str = pass }
    { index = 5, str = grape }
*/
Dim fruits() As String = {"apple", "banana", "mango", "orange", _
                      "passionfruit", "grape"}

' Project an anonymous type that contains the
' index of the string in the source array, and
' a string that contains the same number of characters
' as the string's index in the source array.
Dim query = _
    fruits.AsQueryable() _
    .Select(Function(fruit, index) New With {index, .str = fruit.Substring(0, index)})

Dim output As New System.Text.StringBuilder
For Each obj In query
    output.AppendLine(obj.ToString())
Next

' Display the output.
MsgBox(output.ToString())

' This code produces the following output:

' { index = 0, str =  }
' { index = 1, str = b }
' { index = 2, str = ma }
' { index = 3, str = ora }
' { index = 4, str = pass }
' { index = 5, str = grape }

Poznámky

Tato metoda má alespoň jeden parametr typu, Expression<TDelegate> jehož argumentem typu je jeden z Func<T,TResult> typů.This method has at least one parameter of type Expression<TDelegate> whose type argument is one of the Func<T,TResult> types. Pro tyto parametry můžete předat výraz lambda a bude zkompilován do Expression<TDelegate> .For these parameters, you can pass in a lambda expression and it will be compiled to an Expression<TDelegate>.

Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>)Metoda generuje MethodCallExpression , který reprezentuje volání Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) sebe sama jako vytvořenou obecnou metodu.The Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) method generates a MethodCallExpression that represents calling Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) itself as a constructed generic method. Poté předá MethodCallExpression CreateQuery(Expression) metodě IQueryProvider reprezentované Provider vlastností source parametru.It then passes the MethodCallExpression to the CreateQuery(Expression) method of the IQueryProvider represented by the Provider property of the source parameter.

Chování dotazu, k němuž dojde v důsledku provádění stromu výrazu, který představuje volání, Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) závisí na implementaci typu source parametru.The query behavior that occurs as a result of executing an expression tree that represents calling Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) depend on the implementation of the type of the source parameter. Očekávané chování je, že vyvolá selector na každém elementu source pro jeho projektování do jiného formuláře.The expected behavior is that it invokes selector on each element of source to project it into a different form.

Platí pro

Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>)

Projektuje každý prvek sekvence do nového formuláře.Projects each element of a sequence into a new form.

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

Parametry typu

TSource

Typ prvků source .The type of the elements of source.

TResult

Typ hodnoty vrácené funkcí reprezentovanou selector .The type of the value returned by the function represented by selector.

Parametry

source
IQueryable<TSource>

Sekvence hodnot do projektu.A sequence of values to project.

selector
Expression<Func<TSource,TResult>>

Funkce projekce, která se má použít u každého prvkuA projection function to apply to each element.

Návraty

IQueryable<TResult>

IQueryable<T>Jejichž prvky jsou výsledkem vyvolání funkce projekce u každého prvku source .An IQueryable<T> whose elements are the result of invoking a projection function on each element of source.

Výjimky

source nebo selector je null .source or selector is null.

Příklady

Následující příklad kódu ukazuje, jak použít Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) k Projectu na základě sekvence hodnot.The following code example demonstrates how to use Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) to project over a sequence of values.

List<int> range =
    new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

// Project the square of each int value.
IEnumerable<int> squares =
    range.AsQueryable().Select(x => x * x);

foreach (int num in squares)
    Console.WriteLine(num);

/*
    This code produces the following output:

    1
    4
    9
    16
    25
    36
    49
    64
    81
    100
*/
Dim range As New List(Of Integer)(New Integer() {1, 2, 3, 4, 5, 6, 7, 8, 9, 10})

' Project the square of each int value.
Dim squares As IEnumerable(Of Integer) = _
    range.AsQueryable().Select(Function(x) x * x)

Dim output As New System.Text.StringBuilder
For Each num As Integer In squares
    output.AppendLine(num)
Next

' Display the output.
MsgBox(output.ToString())

' This code produces the following output:

' 1
' 4
' 9
' 16
' 25
' 36
' 49
' 64
' 81
' 100

Poznámky

Tato metoda má alespoň jeden parametr typu, Expression<TDelegate> jehož argumentem typu je jeden z Func<T,TResult> typů.This method has at least one parameter of type Expression<TDelegate> whose type argument is one of the Func<T,TResult> types. Pro tyto parametry můžete předat výraz lambda a bude zkompilován do Expression<TDelegate> .For these parameters, you can pass in a lambda expression and it will be compiled to an Expression<TDelegate>.

Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>)Metoda generuje MethodCallExpression , který reprezentuje volání Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) sebe sama jako vytvořenou obecnou metodu.The Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) method generates a MethodCallExpression that represents calling Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) itself as a constructed generic method. Poté předá MethodCallExpression CreateQuery(Expression) metodě IQueryProvider reprezentované Provider vlastností source parametru.It then passes the MethodCallExpression to the CreateQuery(Expression) method of the IQueryProvider represented by the Provider property of the source parameter.

Chování dotazu, k němuž dojde v důsledku provádění stromu výrazu, který představuje volání, Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) závisí na implementaci typu source parametru.The query behavior that occurs as a result of executing an expression tree that represents calling Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) depends on the implementation of the type of the source parameter. Očekávané chování je, že vyvolá selector na každém elementu source pro jeho projektování do jiného formuláře.The expected behavior is that it invokes selector on each element of source to project it into a different form.

Platí pro