English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
L'operatore di partizione divide una sequenza (raccolta) in due parti e restituisce una di esse.
Il metodo estensione Take() restituisce un numero specificato di elementi a partire dal primo elemento.
IList<string> strList = new List<string>(){ "One", "Two", "Three", "Four", "Five" }; var newList = strList.Take(2); foreach(var str in newList) Console.WriteLine(str);
Uno Due
La sintassi di query di C# non supporta gli operatori Take & TakeWhile. Tuttavia, è possibile utilizzare il metodo Take/takedwhile per la variabile di query o incapsulare l'intera query tra parentesi, quindi chiamare Take/takedwhile ().
Dim takeResult = From s In studentList Take 3 Select s
Il metodo estensione TakeWhile() restituisce gli elementi della raccolta fornita fino a quando la condizione specificata non è true. Se il primo elemento non soddisfa la condizione, viene restituita una raccolta vuota.
TakeWhile metodo ha due sovraccarichi. Uno accetta un predicato di tipo Func<TSource, bool>, e l'altro accetta un predicato di tipo Func<TSource, int, bool> che passa l'indice dell'elemento.
Nel esempio seguente, il metodo TakeWhile() restituisce una nuova collezione che contiene tutti gli elementi fino a quando non si trova una stringa con lunghezza minore di 4 caratteri.
Esempio: TakeWhile metodo in C# restituisce elementi di stringa con lunghezza maggiore di 4
IList<string> strList = new List<string>() { "Tre", "Quattro", "Cinque", "Centotto"}; var result = strList.TakeWhile(s => s.Length > 4); foreach(string str in result) Console.WriteLine(str);
Tre
Nel esempio sopra, TakeWhile() restituisce una collezione che contiene solo l'elemento primo, perché il secondo elemento della stringa non soddisfa questa condizione.
TakeWhile passa anche l'indice dell'elemento corrente alla funzione di predicato. Ecco un esempio di TakeWhile che accetta elementi fino a quando la lunghezza della stringa dell'elemento è maggiore dell'indice
IList<string> strList = new List<string>() { "Uno", "Due", "Tre", "Quattro", "Cinque", "Sei"}; var resultList = strList.TakeWhile((s, i) => s.Length > i); foreach(string str in resultList) Console.WriteLine(str);
Uno Due Tre Quattro