LINQ se conoce como Language Integrated Query y se introdujo en .NET 3.5. Da poder a los lenguajes .NET para generar o crear consultas para recuperar datos de la fuente de datos. En este artículo, generaremos números pares aleatorios en paralelo usando LINQ. Entonces, usaremos ParallelQuery{TSource} para generar una secuencia de números enteros en paralelo dentro del rango dado. Junto con esto, tenemos que usar la cláusula where y select para obtener los números pares. Recuerde que lanzará una excepción ArgumentOutOfRangeException si la parada es menor que 0 o start +stop-1 es mayor que MaxValue.
Sintaxis:
IEnumerable<int> variable = ((ParallelQuery<int>)ParallelEnumerable.Range(start, stop)).Where(x => x % 2 == 0).Select(i => i);
Donde el inicio es el primer valor entero en la secuencia y la parada es el número de enteros secuenciales a generar.
Ejemplo:
Input : Range(start, stop) = Range(1, 20) Output : 2 6 12 16 4 8 14 18 10 20 Input : Range(start, stop) = Range(10, 20) Output : 10 12 14 16 18 20 22 24 26 28
Acercarse:
Para imprimir números pares en paralelo siga los siguientes pasos:
- Implemente una consulta paralela {TSource} y mencione el rango.
- Utilice la cláusula where para comprobar que el módulo de y por 2 es igual a cero.
- Ahora Select se usa para comprobar si el valor de la variable j es mayor o igual que el valor de la variable (es decir, j).
- Iterar los números pares usando el ciclo foreach
Ejemplo:
C#
// C# program to generate random even numbers // using LINQ Parallel Query using System; using System.Collections.Generic; using System.Linq; class GFG{ static void Main(string[] args) { // Creating data IEnumerable<int> data = ((ParallelQuery<int>)ParallelEnumerable.Range( // Condition for generating even numbers 10, 20)).Where(i => i % 2 == 0).Select( value => value); // Display even numbers foreach(int even in data) { Console.WriteLine(even); } } }
Producción:
12 14 16 18 20 22 24 26 28 10
Publicación traducida automáticamente
Artículo escrito por saisravanprojects y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA