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); } }
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