¡Hola, Platzinauta! 🏆🙌🏽
Para realizarlo haz un fork de este ejercicio en Replit, o copia el código en tu editor favorito.
Comparte el resultado en los comentarios
Introducción
Bienvenida al curso
Prerrequisitos
¿Qué es LINQ?
Programación declarativa vs. imperativa
Utilizando LINQ por primera vez
Configuración de proyecto
Creando el proyecto base
Configurando clases
Importando datos
Operadores básicos
Usando el operador Where
Ejercicio para aplicar el operador Where
Operadores All y Any
Operador Contains
Operadores OrderBy y OrderByDescending
Ejercicio operador OrderBy
Operadores Take y Skip
Selección dinámica de datos
Operadores de agregación
Operadores LongCount y Count
Operadores Min y Max
Operadores MinBy y MaxBy
Operadores Sum y Aggregate
Operador Average
Agrupamiento de datos
Cláusula GroupBy
Ejercicio cláusula GroupBy
Cláusula Lookup
Cláusula Join
Cierre de curso
Recapitulación sobre LINQ
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Convierte tus certificados en títulos universitarios en USA
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Miguel Teheran
Aportes 56
Preguntas 1
Para realizarlo haz un fork de este ejercicio en Replit, o copia el código en tu editor favorito.
Comparte el resultado en los comentarios
Excelente curso
class Program {
public static void Main (string[] args) {
List<Animal> animales = new List<Animal>();
animales.Add(new Animal() { Nombre = "Hormiga", Color = "Rojo" });
animales.Add(new Animal() { Nombre = "Lobo", Color = "Gris" });
animales.Add(new Animal() { Nombre = "Elefante", Color = "Gris" });
animales.Add(new Animal() { Nombre = "Pantegra", Color = "Negro" });
animales.Add(new Animal() { Nombre = "Gato", Color = "Negro" });
animales.Add(new Animal() { Nombre = "Iguana", Color = "Verde" });
animales.Add(new Animal() { Nombre = "Sapo", Color = "Verde" });
animales.Add(new Animal() { Nombre = "Camaleon", Color = "Verde" });
animales.Add(new Animal() { Nombre = "Gallina", Color = "Blanco" });
// Escribe tu código aquí
// Retorna los datos de la colleción Animales agrupada por color
IEnumerable<IGrouping<string,Animal>> animalesGroup = animales.GroupBy(p=> p.Color);
foreach(var grupo in animalesGroup){
Console.WriteLine("");
Console.WriteLine($"Grupo: {grupo.Key}");
Console.WriteLine("{0,-60}{1,15}","Name","Color");
foreach(var item in grupo){
Console.WriteLine("{0,-60}{1,15}",item.Nombre,item.Color);
}
}
}
public class Animal
{
public string Nombre {get;set;}
public string Color {get;set;}
}
}
Hola, este es el código que agregué
// Escribe tu código aquí
// Retorna los datos de la colleción Animales agrupada por color
foreach(var group in animales.GroupBy(a => a.Color))
{
Console.WriteLine($"\nGrupo de color {group.Key}");
foreach(var item in group)
{
Console.WriteLine($"{item.Nombre} - {item.Color}");
}
}
Les comparto el resultado obtenido.
using System;
using System.Collections.Generic;
using System.Linq;
class Program {
public static void Main (string[] args) {
List<Animal> animales = new List<Animal>();
animales.Add(new Animal() { Nombre = "Hormiga", Color = "Rojo" });
animales.Add(new Animal() { Nombre = "Lobo", Color = "Gris" });
animales.Add(new Animal() { Nombre = "Elefante", Color = "Gris" });
animales.Add(new Animal() { Nombre = "Pantegra", Color = "Negro" });
animales.Add(new Animal() { Nombre = "Gato", Color = "Negro" });
animales.Add(new Animal() { Nombre = "Iguana", Color = "Verde" });
animales.Add(new Animal() { Nombre = "Sapo", Color = "Verde" });
animales.Add(new Animal() { Nombre = "Camaleon", Color = "Verde" });
animales.Add(new Animal() { Nombre = "Gallina", Color = "Blanco" });
// Escribe tu código aquí
// Retorna los datos de la colleción Animales agrupada por color
var AG = animales.GroupBy(prop => prop.Color);
foreach(var group in AG){
Console.WriteLine($"Grupo: {group.Key}");
foreach(var animal in group)Console.WriteLine(animal.Nombre);
Console.WriteLine("");
}
}
public class Animal
{
public string Nombre {get;set;}
public string Color {get;set;}
}
}
Mi aporte
List<Animal> animales = new List<Animal>();
animales.Add(new Animal() { Nombre = "Hormiga", Color = "Rojo" });
animales.Add(new Animal() { Nombre = "Lobo", Color = "Gris" });
animales.Add(new Animal() { Nombre = "Elefante", Color = "Gris" });
animales.Add(new Animal() { Nombre = "Pantegra", Color = "Negro" });
animales.Add(new Animal() { Nombre = "Gato", Color = "Negro" });
animales.Add(new Animal() { Nombre = "Iguana", Color = "Verde" });
animales.Add(new Animal() { Nombre = "Sapo", Color = "Verde" });
animales.Add(new Animal() { Nombre = "Camaleon", Color = "Verde" });
animales.Add(new Animal() { Nombre = "Gallina", Color = "Blanco" });
IEnumerable<IGrouping<string, Animal>> animalesAgrupados = animales.GroupBy( animal => animal.Color );
foreach (var grupo in animalesAgrupados)
{
Console.WriteLine("");
Console.WriteLine($"Color: {grupo.Key}");
Console.WriteLine("{0, -30} {1, 30}\n", "Nombre", "Color");
foreach (var item in grupo)
{
Console.WriteLine("{0, -30} {1, 30}", item.Nombre, item.Color);
}
}
public class Animal
{
public string Nombre { get; set; }
public string Color { get; set; }
}
imprimirGrupo(animales.GroupBy(p => p.Color));
void imprimirGrupo(IEnumerable<IGrouping<string, Animal>> ListaDeAnimales)
{
foreach (var grupo in ListaDeAnimales)
{
Console.WriteLine("");
Console.WriteLine($“Grupo: {grupo.Key}”);
Console.WriteLine("{0,-10} {1, 15}", “Nombre”, “Color”);
foreach (var item in grupo)
{
Console.WriteLine("{0,-10} {1, 15}", item.Nombre, item.Color);
}
}
}
Esta es mi versión.
using System;
using System.Collections.Generic;
using System.Linq;
class Program {
public static void Main (string[] args) {
List<Animal> animales = new List<Animal>();
animales.Add(new Animal() { Nombre = "Hormiga", Color = "Rojo" });
animales.Add(new Animal() { Nombre = "Lobo", Color = "Gris" });
animales.Add(new Animal() { Nombre = "Elefante", Color = "Gris" });
animales.Add(new Animal() { Nombre = "Pantegra", Color = "Negro" });
animales.Add(new Animal() { Nombre = "Gato", Color = "Negro" });
animales.Add(new Animal() { Nombre = "Iguana", Color = "Verde" });
animales.Add(new Animal() { Nombre = "Sapo", Color = "Verde" });
animales.Add(new Animal() { Nombre = "Camaleon", Color = "Verde" });
animales.Add(new Animal() { Nombre = "Gallina", Color = "Blanco" });
// Escribe tu código aquí
// Retorna los datos de la colleción Animales agrupada por color
new Agrupar().Imprimir(new Agrupar().OrdenadosXColor(animales));
}
public class Animal
{
public string Nombre {get;set;}
public string Color {get;set;}
}
public class Agrupar{
public IEnumerable<IGrouping<string, Animal>> OrdenadosXColor(List<Animal> animales){
return animales.GroupBy(p => p.Color);
}
public void Imprimir(IEnumerable<IGrouping<string, Animal>> animales){
foreach(var grupo in animales){
Console.WriteLine($"Grupo: {grupo.Key}");
Console.WriteLine("{0, -10} {1,7}" ,"Nombre","Color");
foreach(var item in grupo){
Console.WriteLine("{0, -10} {1,7}" , item.Nombre, item.Color);
}
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
class Program {
public static void Main (string[] args) {
List<Animal> animales = new List<Animal>();
animales.Add(new Animal() { Nombre = "Hormiga", Color = "Rojo" });
animales.Add(new Animal() { Nombre = "Lobo", Color = "Gris" });
animales.Add(new Animal() { Nombre = "Elefante", Color = "Gris" });
animales.Add(new Animal() { Nombre = "Pantera", Color = "Negro" });
animales.Add(new Animal() { Nombre = "Gato", Color = "Negro" });
animales.Add(new Animal() { Nombre = "Iguana", Color = "Verde" });
animales.Add(new Animal() { Nombre = "Sapo", Color = "Verde" });
animales.Add(new Animal() { Nombre = "Camaleon", Color = "Verde" });
animales.Add(new Animal() { Nombre = "Gallina", Color = "Blanco" });
// Escribe tu código aquí
// Retorna los datos de la colección Animales agrupada por color
var GroupColorAnimals = animales.OrderBy(p=>p.Nombre).GroupBy(p=>p.Color);
foreach(var group in GroupColorAnimals)
{
Console.WriteLine($"Group: {group.Key}");
foreach(var item in group)
{
Console.WriteLine(item.Nombre);
}
Console.WriteLine("");
}
}
public class Animal
{
public string Nombre {get;set;}
public string Color {get;set;}
}
}
////Así quedó mi código
using System;
using System.Collections.Generic;
using System.Linq;
class Program {
public static void Main (string[] args) {
List<Animal> animales = new List<Animal>();
animales.Add(new Animal() { Nombre = "Hormiga", Color = "Rojo" });
animales.Add(new Animal() { Nombre = "Lobo", Color = "Gris" });
animales.Add(new Animal() { Nombre = "Elefante", Color = "Gris" });
animales.Add(new Animal() { Nombre = "Pantegra", Color = "Negro" });
animales.Add(new Animal() { Nombre = "Gato", Color = "Negro" });
animales.Add(new Animal() { Nombre = "Iguana", Color = "Verde" });
animales.Add(new Animal() { Nombre = "Sapo", Color = "Verde" });
animales.Add(new Animal() { Nombre = "Camaleon", Color = "Verde" });
animales.Add(new Animal() { Nombre = "Gallina", Color = "Blanco" });
// Escribe tu código aquí
// Retorna los datos de la colleción Animales agrupada por color
IEnumerable<IGrouping<string, Animal>>listaAnimalesAgrupados =animales.GroupBy(x=>x.Color);
ImprimirGrupo(listaAnimalesAgrupados);
void ImprimirGrupo(IEnumerable<IGrouping<string,Animal>> ListadeAnimales)
{
foreach(var grupo in ListadeAnimales)
{
Console.WriteLine("");
Console.WriteLine($"Grupo: { grupo.Key }");
Console.WriteLine("{0,-60} {1, 15}\n", "Nombre", "Color");
foreach(var item in grupo)
{
Console.WriteLine("{0,-60} {1, 15}",item.Nombre,item.Color);
}
}
}
}
public class Animal
{
public string Nombre {get;set;}
public string Color {get;set;}
}
}
Mi solución con la impresión en consola:
Para agrupar los animales:
List<IGrouping<string, Animal>> GroupAnimalsByColor ()
{
return animals.GroupBy(animal => animal.Color).ToList();
}
Para Imprimirlos:
void PrintGroupString(IEnumerable<IGrouping<string, Animal>> booksList)
{
foreach (var group in booksList)
{
Console.WriteLine("");
Console.WriteLine($"Color: {group.Key}");
Console.WriteLine("{0,-20}", "Name");
foreach (var item in group)
{
Console.WriteLine("{0,-20}", item.Name);
}
}
}
Para llamar el método: PrintGroupString(GroupAnimalsByColor());
// Escribe tu código aquí
// Retorna los datos de la colleción Animales agrupada por color
var colorAnimales = from a in animales group a by a.Color;
foreach(var grupo in colorAnimales)
{
Console.WriteLine($"[QUERY] - {grupo.Key}");
foreach(var animalito in grupo){
Console.WriteLine($"{animalito.Nombre}");
}
}
}
Mi solución fue:
1.Creo una variable tipo lista que contenga Animales y la agrupo por color
2.Imprimo un encabezado para cada grupo de Color
3.Hago que por cada grupo de Color empiece a imprimir en consola los animales correspondientes y su color
var ListaDeAnimales = animales.GroupBy(p => p.Color).ToList();
foreach (var grupo in ListaDeAnimales)
{
Console.WriteLine("");
Console.WriteLine($"Grupo: {grupo.Key}");
Console.WriteLine("{0, -60} {1, 15}\n", "Nombre", "Color");
foreach (var item in grupo)
{
Console.WriteLine("{0, -60} {1, 15}\n", item.Nombre, item.Color);
}
}
Mi pequeño aporte
using System;
using System.Collections.Generic;
using System.Linq;
class Program {
public static void Main (string[] args) {
List<Animal> animales = new List<Animal>();
animales.Add(new Animal() { Nombre = "Hormiga", Color = "Rojo" });
animales.Add(new Animal() { Nombre = "Lobo", Color = "Gris" });
animales.Add(new Animal() { Nombre = "Elefante", Color = "Gris" });
animales.Add(new Animal() { Nombre = "Pantegra", Color = "Negro" });
animales.Add(new Animal() { Nombre = "Gato", Color = "Negro" });
animales.Add(new Animal() { Nombre = "Iguana", Color = "Verde" });
animales.Add(new Animal() { Nombre = "Sapo", Color = "Verde" });
animales.Add(new Animal() { Nombre = "Camaleon", Color = "Verde" });
animales.Add(new Animal() { Nombre = "Gallina", Color = "Blanco" });
// Escribe tu código aquí
// Retorna los datos de la colleción Animales agrupada por color
var animalesAgrupadosColor = animales.GroupBy( x => x.Color);
foreach(var grupo in animalesAgrupadosColor){
Console.WriteLine("");
Console.WriteLine($"Grupo: {grupo.Key}");
Console.WriteLine("{0, 15} {1, 15}\n", "Nombre", "Color");
foreach(var item in grupo)
{
Console.WriteLine("{0, 15} {1, 15}",item.Nombre,item.Color);
}
}
}
public class Animal
{
public string Nombre {get;set;}
public string Color {get;set;}
}
}
Esta es mi solución
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
public static void Main(string[] args)
{
List<Animal> animales = new List<Animal>();
animales.Add(new Animal() { Nombre = "Hormiga", Color = "Rojo" });
animales.Add(new Animal() { Nombre = "Lobo", Color = "Gris" });
animales.Add(new Animal() { Nombre = "Elefante", Color = "Gris" });
animales.Add(new Animal() { Nombre = "Pantegra", Color = "Negro" });
animales.Add(new Animal() { Nombre = "Gato", Color = "Negro" });
animales.Add(new Animal() { Nombre = "Iguana", Color = "Verde" });
animales.Add(new Animal() { Nombre = "Sapo", Color = "Verde" });
animales.Add(new Animal() { Nombre = "Camaleon", Color = "Verde" });
animales.Add(new Animal() { Nombre = "Gallina", Color = "Blanco" });
// Escribe tu código aquí
var groupAnimals = animales.GroupBy(p => p.Color);
void PrintGroups(IEnumerable<IGrouping<string, Animal>> animals)
{
foreach (var group in animals)
{
Console.WriteLine($"\nGrupo: {group.Key}");
foreach (var item in group)
{
Console.WriteLine(item.Nombre);
}
}
}
PrintGroups(groupAnimals);
// Retorna los datos de la colleción Animales agrupada por color
}
public class Animal
{
public string Nombre { get; set; }
public string Color { get; set; }
}
}
void ImprimirAnimalPorColor(IEnumerable<IGrouping<string, Animal>> ListaDeAnimales)
{
foreach (var grupo in ListaDeAnimales)
{
Console.WriteLine($"Grupo: {grupo.Key}");
foreach(var item in grupo) {
Console.WriteLine($"Animal: {item.Nombre} | Color: {item.Color}");
}
}
}
var animalesAgrupadosPorColor = animales.GroupBy(p => p.Color);
ImprimirAnimalPorColor(animalesAgrupadosPorColor);
IEnumerable<IGrouping<string,Animal>> ColorAgrupado = animales.GroupBy(p=> p.Color);
foreach(var grupo in ColorAgrupado)
{
Console.WriteLine("");
Console.WriteLine($"Color: { grupo.Key}");
//Console.WriteLine("{0,-60}\n", "Nombre");
foreach(var item in grupo)
{
Console.WriteLine("{0,-60}", item.Nombre);
}
}
Mi solucion
Resultado
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?