Programa C# para dividir la secuencia en grupos usando LINQ

Dada una secuencia, ahora nuestra tarea es dividir la secuencia dada en grupos usando LINQ . Entonces, para esta tarea, primero generamos una secuencia, luego seleccionamos los elementos de la secuencia dada y luego los agrupamos. 

Acercarse:

1. En C#, podemos usar LINQ al incluir el espacio de nombres «System.Linq» en nuestro programa.

2. Genere una secuencia usando el método Enumerable.Range(start, end),

public static System.Collections.Generic.IEnumerable<int> Range (int start, int count);

3. Ahora, podemos seleccionar cada elemento de la secuencia y dividirlos por 20 y luego agruparlos después de convertirlos en nuevas formas.

var groups = from a in sequence.Select((p, q) => new { p, groups = q / 20 })
             group a.p by a.groups into b
             select new { Min = b.Min(), Max = b.Max() };

Ejemplo: en este programa, en primer lugar, en la primera iteración, hemos generado una secuencia de números que comienzan en 100 y terminan en 100 + 100. Además, usando la propiedad Seleccionar estamos dividiendo cada elemento de la secuencia por 20. Ahora, en En la segunda iteración, convertimos estos elementos en nuevas formas y los agrupamos usando la propiedad de grupo . El resultado se transforma en una colección enumerable de objetos anónimos con una propiedad Min y Max.

C#

// C# program to divide a sequence into
// groups using LINQ
using System;
using System.Linq;
using System.IO;
  
class GFG{
  
static public void Main()
{
      
    // Generating a sequence
    var sequence = Enumerable.Range(100, 100).Select(a => a / 20f);
      
    // Dividing the given sequence into groups
    var groups = from a in sequence.Select((p, q) => new { p, groups = q / 20 })
                 group a.p by a.groups into b
                 select new { Min = b.Min(), Max = b.Max() };
      
    // Displaying the results           
    foreach(var grps in groups)
        Console.WriteLine("Min: " + grps.Min + " Max:" + grps.Max);
}
}
Producción

Min: 5 Max:5.95
Min: 6 Max:6.95
Min: 7 Max:7.95
Min: 8 Max:8.95
Min: 9 Max:9.95

Publicación traducida automáticamente

Artículo escrito por bhuwanesh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *