Queryable.Select Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Proietta ogni elemento di una sequenza in un nuovo form.
Overload
Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) |
Proietta ogni elemento di una sequenza in un nuovo modulo incorporando l'indice dell'elemento. |
Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) |
Proietta ogni elemento di una sequenza in un nuovo form. |
Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>)
- Source:
- Queryable.cs
- Source:
- Queryable.cs
- Source:
- Queryable.cs
Proietta ogni elemento di una sequenza in un nuovo modulo incorporando l'indice dell'elemento.
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)
Parametri di tipo
- TSource
Tipo degli elementi di source
.
- TResult
Tipo del valore restituito dalla funzione rappresentata dall'oggetto selector
.
Parametri
- source
- IQueryable<TSource>
Sequenza di valori da proiettare.
- selector
- Expression<Func<TSource,Int32,TResult>>
Funzione di proiezione da applicare a ogni elemento.
Restituisce
Un oggetto IQueryable<T> i cui elementi sono il risultato ottenuto richiamando una funzione di proiezione su ogni elemento di source
.
Eccezioni
source
o selector
è null
.
Esempio
Nell'esempio di codice seguente viene illustrato come usare Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) per proiettare su una sequenza di valori e usare l'indice di ogni elemento nel formato proiettato.
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 }
Commenti
Questo metodo ha almeno un parametro di tipo il Func<T,TResult> cui argomento di tipo Expression<TDelegate> è uno dei tipi. Per questi parametri, è possibile passare un'espressione lambda e verrà compilata in un Expression<TDelegate>oggetto .
Il Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) metodo genera un MethodCallExpression oggetto che rappresenta la chiamata Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) stessa come metodo generico costruito. Passa quindi l'oggetto MethodCallExpression al CreateQuery(Expression) metodo dell'oggetto IQueryProvider rappresentato dalla Provider proprietà del source
parametro.
Il comportamento della query che si verifica come risultato dell'esecuzione di un albero delle espressioni che rappresenta la chiamata Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,Int32,TResult>>) dipende dall'implementazione del tipo del source
parametro. Il comportamento previsto è che richiama selector
su ogni elemento di source
per proiettarlo in una forma diversa.
Si applica a
Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>)
- Source:
- Queryable.cs
- Source:
- Queryable.cs
- Source:
- Queryable.cs
Proietta ogni elemento di una sequenza in un nuovo 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)
Parametri di tipo
- TSource
Tipo degli elementi di source
.
- TResult
Tipo del valore restituito dalla funzione rappresentata dall'oggetto selector
.
Parametri
- source
- IQueryable<TSource>
Sequenza di valori da proiettare.
- selector
- Expression<Func<TSource,TResult>>
Funzione di proiezione da applicare a ogni elemento.
Restituisce
Un oggetto IQueryable<T> i cui elementi sono il risultato ottenuto richiamando una funzione di proiezione su ogni elemento di source
.
Eccezioni
source
o selector
è null
.
Esempio
Nell'esempio di codice seguente viene illustrato come usare Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) per proiettare su una sequenza di valori.
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
Commenti
Questo metodo ha almeno un parametro di tipo il Func<T,TResult> cui argomento di tipo Expression<TDelegate> è uno dei tipi. Per questi parametri, è possibile passare un'espressione lambda e verrà compilata in un Expression<TDelegate>oggetto .
Il Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) metodo genera un MethodCallExpression oggetto che rappresenta la chiamata Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) stessa come metodo generico costruito. Passa quindi l'oggetto MethodCallExpression al CreateQuery(Expression) metodo dell'oggetto IQueryProvider rappresentato dalla Provider proprietà del source
parametro.
Il comportamento della query che si verifica come risultato dell'esecuzione di un albero delle espressioni che rappresenta la chiamata Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) dipende dall'implementazione del tipo del source
parametro. Il comportamento previsto è che richiama selector
su ogni elemento di source
per proiettarlo in una forma diversa.
Si applica a
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: nel corso del 2024 verranno dismessi i problemi di GitHub come meccanismo di feedback per il contenuto e verranno sostituiti con un nuovo sistema di feedback. Per altre informazioni, vedere:Invia e visualizza il feedback per