Enumerable.SkipWhile 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.
Ignora gli elementi in sequenza finché la condizione specificata è soddisfatta e quindi restituisce gli elementi rimanenti.
Overload
SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Ignora gli elementi in sequenza finché la condizione specificata è soddisfatta e quindi restituisce gli elementi rimanenti. |
SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) |
Ignora gli elementi in sequenza finché la condizione specificata è soddisfatta e quindi restituisce gli elementi rimanenti. L'indice dell'elemento viene usato nella logica della funzione predicativa. |
SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)
- Origine:
- Skip.cs
- Origine:
- Skip.cs
- Origine:
- Skip.cs
Ignora gli elementi in sequenza finché la condizione specificata è soddisfatta e quindi restituisce gli elementi rimanenti.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static System::Collections::Generic::IEnumerable<TSource> ^ SkipWhile(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, bool> ^ predicate);
public static System.Collections.Generic.IEnumerable<TSource> SkipWhile<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate);
static member SkipWhile : seq<'Source> * Func<'Source, bool> -> seq<'Source>
<Extension()>
Public Function SkipWhile(Of TSource) (source As IEnumerable(Of TSource), predicate As Func(Of TSource, Boolean)) As IEnumerable(Of TSource)
Parametri di tipo
- TSource
Tipo degli elementi di source
.
Parametri
- source
- IEnumerable<TSource>
Oggetto IEnumerable<T> dal quale restituire elementi.
Restituisce
Oggetto IEnumerable<T> che contiene gli elementi dalla sequenza di input a partire dal primo elemento nella serie lineare che non supera il test specificato da predicate
.
Eccezioni
source
o predicate
è null
.
Esempio
Nell'esempio di codice seguente viene illustrato come usare SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) per ignorare gli elementi di una matrice purché una condizione sia true.
int[] grades = { 59, 82, 70, 56, 92, 98, 85 };
IEnumerable<int> lowerGrades =
grades
.OrderByDescending(grade => grade)
.SkipWhile(grade => grade >= 80);
Console.WriteLine("All grades below 80:");
foreach (int grade in lowerGrades)
{
Console.WriteLine(grade);
}
/*
This code produces the following output:
All grades below 80:
70
59
56
*/
' Create an array of integers that represent grades.
Dim grades() As Integer = {59, 82, 70, 56, 92, 98, 85}
' Sort the grades in descending order and
' get all grades greater less than 80.
Dim lowerGrades As IEnumerable(Of Integer) =
grades _
.OrderByDescending(Function(grade) grade) _
.SkipWhile(Function(grade) grade >= 80)
' Display the results.
Dim output As New System.Text.StringBuilder("All grades below 80:" & vbCrLf)
For Each grade As Integer In lowerGrades
output.AppendLine(grade)
Next
Console.WriteLine(output.ToString())
' This code produces the following output:
'
' All grades below 80:
' 70
' 59
' 56
Commenti
Il SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) metodo viene implementato usando l'esecuzione posticipata. Il valore restituito immediato è un oggetto che archivia tutte le informazioni necessarie per eseguire l'azione. La query rappresentata da questo metodo non viene eseguita finché l'oggetto non viene enumerato chiamando il GetEnumerator
relativo metodo direttamente o usando foreach
in C# o For Each
in Visual Basic.
Questo metodo verifica ogni elemento di source
usando predicate
e ignora l'elemento se il risultato è true
. Dopo che la funzione predicato restituisce false
per un elemento, tale elemento e gli elementi rimanenti in source
vengono restituiti e non sono presenti più chiamate di predicate
.
Se predicate
restituisce true
per tutti gli elementi della sequenza, viene restituito un vuoto IEnumerable<T> .
I TakeWhile metodi e SkipWhile sono complementi funzionali. Dato una sequenza di raccolta e una funzione pura, concatenando i risultati di e coll.SkipWhile(p)
restituisce la stessa sequenza coll
di coll.TakeWhile(p)
coll
.p
Nella sintassi dell'espressione di query di Visual Basic, una Skip While
clausola si traduce in una chiamata di SkipWhile.
Vedi anche
Si applica a
SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>)
- Origine:
- Skip.cs
- Origine:
- Skip.cs
- Origine:
- Skip.cs
Ignora gli elementi in sequenza finché la condizione specificata è soddisfatta e quindi restituisce gli elementi rimanenti. L'indice dell'elemento viene usato nella logica della funzione predicativa.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static System::Collections::Generic::IEnumerable<TSource> ^ SkipWhile(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, int, bool> ^ predicate);
public static System.Collections.Generic.IEnumerable<TSource> SkipWhile<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,int,bool> predicate);
static member SkipWhile : seq<'Source> * Func<'Source, int, bool> -> seq<'Source>
<Extension()>
Public Function SkipWhile(Of TSource) (source As IEnumerable(Of TSource), predicate As Func(Of TSource, Integer, Boolean)) As IEnumerable(Of TSource)
Parametri di tipo
- TSource
Tipo degli elementi di source
.
Parametri
- source
- IEnumerable<TSource>
Oggetto IEnumerable<T> dal quale restituire elementi.
Funzione per verificare ogni elemento di origine per una condizione; il secondo parametro della funzione rappresenta l'indice dell'elemento di origine.
Restituisce
Oggetto IEnumerable<T> che contiene gli elementi dalla sequenza di input a partire dal primo elemento nella serie lineare che non supera il test specificato da predicate
.
Eccezioni
source
o predicate
è null
.
Esempio
Nell'esempio di codice seguente viene illustrato come usare SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) per ignorare gli elementi di una matrice purché una condizione che dipende dall'indice dell'elemento sia true.
int[] amounts = { 5000, 2500, 9000, 8000,
6500, 4000, 1500, 5500 };
IEnumerable<int> query =
amounts.SkipWhile((amount, index) => amount > index * 1000);
foreach (int amount in query)
{
Console.WriteLine(amount);
}
/*
This code produces the following output:
4000
1500
5500
*/
' Create an array of integers.
Dim amounts() As Integer =
{5000, 2500, 9000, 8000, 6500, 4000, 1500, 5500}
' Skip items in the array whose value is greater than
' the item's index times 1000; get the remaining items.
Dim query As IEnumerable(Of Integer) =
amounts.SkipWhile(Function(amount, index) _
amount > index * 1000)
' Output the results.
Dim output As New System.Text.StringBuilder
For Each amount As Integer In query
output.AppendLine(amount)
Next
Console.WriteLine(output.ToString())
' This code produces the following output:
'
' 4000
' 1500
' 5500
Commenti
Questo metodo viene implementato usando l'esecuzione posticipata. Il valore restituito immediato è un oggetto che archivia tutte le informazioni necessarie per eseguire l'azione. La query rappresentata da questo metodo non viene eseguita finché l'oggetto non viene enumerato chiamando il GetEnumerator
relativo metodo direttamente o usando foreach
in C# o For Each
in Visual Basic.
Il SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) metodo verifica ogni elemento di source
usando predicate
e ignora l'elemento se il risultato è true
. Dopo che la funzione predicato restituisce false
per un elemento, tale elemento e gli elementi rimanenti in source
vengono restituiti e non sono presenti più chiamate di predicate
.
Se predicate
restituisce true
per tutti gli elementi della sequenza, viene restituito un vuoto IEnumerable<T> .
Il primo argomento di predicate
rappresenta l'elemento da testare. Il secondo argomento rappresenta l'indice in base zero dell'elemento all'interno source
di .
I TakeWhile metodi e SkipWhile sono complementi funzionali. Dato una sequenza di raccolta e una funzione pura, concatenando i risultati di e coll.SkipWhile(p)
restituisce la stessa sequenza coll
di coll.TakeWhile(p)
coll
.p
Nella sintassi dell'espressione di query di Visual Basic, una Skip While
clausola si traduce in una chiamata di SkipWhile.