En LINQ, los operadores de partición se utilizan para separar la secuencia dada en dos partes sin ordenar los elementos y devolver una de las partes. Los operadores de consulta estándar admiten 4 tipos diferentes de operadores de partición:
- Saltar
- Saltar Mientras
- Tomar
- tomar mientras
Operador SkipWhile
El operador SkipWhile se usa para omitir los elementos según la función de predicado hasta que el elemento en la secuencia dada no satisfaga la condición dada y luego devuelve los elementos restantes. Este método se sobrecarga de dos maneras diferentes:
- SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource, Boolean>): este método se usa para omitir los elementos en una secuencia dada siempre que una condición específica sea verdadera y luego devuelve los elementos restantes.
- SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource, Int32, Boolean>): este método se usa para omitir los elementos en una secuencia dada siempre que una condición específica sea verdadera y luego devuelve los elementos restantes. El índice del elemento se utiliza en la lógica de la función de predicado.
Puntos importantes:
- No es compatible con la sintaxis de consulta en los lenguajes C# y VB.Net. Pero puede usar el método SkipWhile para consultar la variable o puede envolver su consulta entre corchetes y luego llamar al método SkipWhile.
- Admite la sintaxis del método en los lenguajes C# y VB.Net.
- Está presente tanto en la clase Queryable como en la Enumerable.
- Se implementa mediante el uso de ejecución diferida.
- Lanzará una excepción ArgumentNullException si la fuente o la condición son nulas.
Ejemplo 1:
// C# program to illustrate the // concept of SkipWhile operator using System; using System.Linq; class GFG { static public void Main() { // Data source int[] sequence = {45, 67, 89, 13, 56, 76, 67}; // Query which skips the // elements lesser than 67 // Using SkipWhile method var result = sequence.OrderBy(s => s).SkipWhile(s => s < 67); Console.WriteLine("Sequence: "); // Display new sequence foreach(var val in result) { Console.WriteLine(val); } } }
Producción:
Sequence: 67 67 76 89
Ejemplo 2:
// C# program to find the names of the // employees whose length is less than 4 using System; using System.Linq; using System.Collections.Generic; // Employee details public class Employee { public int emp_id{get; set;} public string emp_name{get; set;} public string emp_gender{get; set;} public string emp_hire_date{get; set;} public int emp_salary{get; set;} } public class GFG{ // Main method static public void Main (){ List<Employee> emp = new List<Employee>(){ new Employee(){emp_id = 209, emp_name = "Anjita", emp_gender = "Female", emp_hire_date = "12/3/2017", emp_salary = 20000}, new Employee(){emp_id = 210, emp_name = "Soniya", emp_gender = "Female", emp_hire_date = "22/4/2018", emp_salary = 30000}, new Employee(){emp_id = 211, emp_name = "Rohit", emp_gender = "Male", emp_hire_date = "3/5/2016", emp_salary = 40000}, new Employee(){emp_id = 212, emp_name = "Anu", emp_gender = "Female", emp_hire_date = "4/8/2017", emp_salary = 80000}, new Employee(){emp_id = 213, emp_name = "Anil", emp_gender = "Male", emp_hire_date = "12/1/2016", emp_salary = 60000}, new Employee(){emp_id = 214, emp_name = "Anju", emp_gender = "Female", emp_hire_date = "17/6/2015", emp_salary = 50000}, }; // Query to find the names of the // employees whose length are less // than 4 Using SkipWhile method var res = emp.SkipWhile(e=> e.emp_name.Length > 4); foreach(var val in res) { Console.WriteLine("Employee Name: {0}", val.emp_name); } } }
Producción:
Employee Name: Anu Employee Name: Anil Employee Name: Anju
Publicación traducida automáticamente
Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA