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

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

17 Días
17 Hrs
39 Min
23 Seg

Ejercicio cláusula GroupBy

23/26

Aportes 56

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

¡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

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

```js // Escribe tu código aquí // Retorna los datos de la colleción Animales agrupada por color var resultado = animales.GroupBy(x => x.Color); foreach (var grupo in resultado) { Console.WriteLine(""); Console.WriteLine($"Color: {grupo.Key}"); foreach (var item in grupo) { Console.WriteLine(item.Nombre, item.Color); } } ``` // Escribe tu código aquí // Retorna los datos de la colleción Animales agrupada por color var resultado = animales.GroupBy(x => x.Color); foreach (var grupo in resultado) { Console.WriteLine(""); Console.WriteLine($"Color: {grupo.Key}"); foreach (var item in grupo) { Console.WriteLine(item.Nombre, item.Color); } }
```js var animalitos = animales.GroupBy(a => a.Color); foreach (var animal in animalitos) { Console.WriteLine($"\n color: {animal.Key}"); foreach (var animal1 in animal) { Console.WriteLine($"nombre: {animal1.Nombre}"); } } ```
```c# 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 ImprimirAnimalesAgrupados(animales.GroupBy(p => p.Color)); } public static void ImprimirAnimalesAgrupados(IEnumerable<IGrouping<string, Animal>> AnimalesAgrupados){ foreach(var group in AnimalesAgrupados){ Console.WriteLine($"\nGrupo: {group.Key}"); foreach(var item in group){ Console.WriteLine($"{item.Nombre}"); } } } public class Animal { public string Nombre {get;set;} public string Color {get;set;} } } ``` Resultado: Grupo: Rojo Hormiga Grupo: Gris Lobo Elefante Grupo: Negro Pantegra Gato Grupo: Verde Iguana Sapo Camaleon Grupo: Blanco Gallina
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 colleción Animales agrupada por color     var animalesAgrupados = animales .GroupBy(a =>a.Color).ToList();    animalesAgrupados.ForEach( agrupacionAnimalesPorColor => {            Console.WriteLine(                $" Grupo {agrupacionAnimalesPorColor.Key}, Animales:{agrupacionAnimalesPorColor.Aggregate("",( animalesListado, animalItem) =>   $"{animalesListado}{(animalesListado.Length>0?", ":" ")}{animalItem.Nombre}")}"            );        }    );
```js IEnumerable<IGrouping<string,Animal>> AnimalesAgrupadosporColor() { return animales.GroupBy(p => p.Color); } ImprimirGrupo(AnimalesAgrupadosporColor()); void ImprimirGrupo(IEnumerable<IGrouping<string,Animal>> listado) { foreach(var grupo in listado) { Console.WriteLine(""); Console.WriteLine($"Grupo: {grupo.Key}"); foreach (var item in grupo) { Console.WriteLine(item.Nombre); } } } ```IEnumerable\<IGrouping\<string,Animal>> AnimalesAgrupadosporColor() { return animales.GroupBy(p => p.Color); } ImprimirGrupo(AnimalesAgrupadosporColor()); void ImprimirGrupo(IEnumerable\<IGrouping\<string,Animal>> listado) { foreach(var grupo in listado) { Console.WriteLine(""); Console.WriteLine($"Grupo: {grupo.Key}"); foreach (var item in grupo) { Console.WriteLine(item.Nombre); } } }
```js 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" }); //printValue(GetGreenAnimals(animales)); //printValue(GetAnimalsASC(animales)); printValueGroup(getGroupByAnimalForColor(animales)); } public static IEnumerable<Animal> GetGreenAnimals(List<Animal> animals) { return animals.Where(p => p.Color == "Verde" && p.Nombre.StartsWith("A") || p.Nombre.StartsWith("E") || p.Nombre.StartsWith("I") || p.Nombre.StartsWith("O") || p.Nombre.StartsWith("U")); } public static void printValue(IEnumerable<Animal> animalList) { Console.WriteLine("{0, -15} {1, 20}", "Nombre", "Color"); Console.WriteLine("------------------------------------"); foreach (var animal in animalList) { Console.WriteLine("{0, -15} {1, 20}", animal.Nombre, animal.Color); } } public static void printValueGroup(IEnumerable<IGrouping<string, Animal>> animalList) { foreach (var group in animalList) { Console.WriteLine($"Color: {group.Key}"); Console.WriteLine("------------------------------------"); foreach (var animal in group) { Console.WriteLine("{0, -15} {1, 20}", animal.Nombre, animal.Color); } } } public static IEnumerable<IGrouping<string, Animal>> getGroupByAnimalForColor(List<Animal> animals) { return animals.GroupBy(p => p.Color); } public static IEnumerable<Animal> GetAnimalsASC(List<Animal> animal) { return animal.OrderBy(p => p.Nombre); } public class Animal { public string Nombre { get; set; } public string Color { get; set; } } } ```
![](https://static.platzi.com/media/user_upload/Screenshot%202024-11-06%20at%2011.52.21PM-f7ee3b8b-2cdd-4489-9811-1ef5641ae009.jpg)
Solo agrego lo siguiente: ```js // Agrupar animales por color var animalesAgrupados = animales.GroupBy(a => a.Color); // Mostrar los resultados foreach (var grupo in animalesAgrupados) { Console.WriteLine($"Color: {grupo.Key}"); foreach (var animal in grupo) { Console.WriteLine($" - {animal.Nombre}"); } } ```// Agrupar animales por color var animalesAgrupados = animales.GroupBy(a => a.Color); // Mostrar los resultados foreach (var grupo in animalesAgrupados) { Console.WriteLine($"Color: {grupo.Key}"); foreach (var animal in grupo) { Console.WriteLine($" - {animal.Nombre}"); } }
```c# // Agrupar los animales por color var animalesAgrupadosPorColor = animales.GroupBy(a => a.Color); // Mostrar los resultados foreach (var grupo in animalesAgrupadosPorColor) { Console.WriteLine($"Color: {grupo.Key}"); foreach (var animal in grupo) { Console.WriteLine($" Nombre: {animal.Nombre}"); } } ```// Agrupar los animales por color var animalesAgrupadosPorColor = animales.GroupBy(a => a.Color); // Mostrar los resultados foreach (var grupo in animalesAgrupadosPorColor) { Console.WriteLine($"Color: {grupo.Key}"); foreach (var animal in grupo) { Console.WriteLine($" Nombre: {animal.Nombre}"); } }
return animales.GroupBy(w => w.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 = "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" }); // Retorna los datos de la colleción Animales agrupada por color var query = animales.GroupBy(r => r.Color).ToList(); foreach (var grupo in query) { 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 código: ```c# 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>> animalesAgrupados = animales.GroupBy(x => x.Color); ImprimirGrupo(animalesAgrupados); } public static void ImprimirGrupo(IEnumerable<IGrouping<string, Animal>> animales) { foreach (var grupo in animales) { Console.WriteLine(""); Console.WriteLine($"Grupo: {grupo.Key}"); foreach (var animal in grupo) { Console.Write(animal.Nombre); Console.WriteLine(""); } } } public class Animal { public string Nombre { get; set; } public string Color { get; set; } } } ```
```js 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 Grupo = animales.GroupBy(x => x.Color); ImprimirAnimales(Grupo); } public static void ImprimirAnimales(IEnumerable<IGrouping<string, Animal>> listado) { if (listado != null) { foreach (var grupo in listado) { Console.WriteLine($"Animales de color: {grupo.Key}"); foreach(var item in grupo) { Console.WriteLine($"{item.Nombre}"); } Console.WriteLine(); } } } public class Animal { public string Nombre {get;set;} public string Color {get;set;} } } ```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 Grupo = animales.GroupBy(x => x.Color);    ImprimirAnimales(Grupo);  }   public static void ImprimirAnimales(IEnumerable\<IGrouping\<string, Animal>> listado) {    if (listado != null) {      foreach (var grupo in listado) {        Console.WriteLine($"Animales de color: {grupo.Key}");        foreach(var item in grupo) {          Console.WriteLine($"{item.Nombre}");        }        Console.WriteLine();      }    }  }   public class Animal  {    public string Nombre {get;set;}    public string Color {get;set;}  }}
Mi solución: En Program.cs: void ImprimirAnimalesAgrupados(IEnumerable\<IGrouping\<string, Animal>> ListaDeAnimales) { foreach (var AnimalesColores in ListaDeAnimales) { Console.WriteLine($"\nColor: {AnimalesColores.Key}"); Console.WriteLine("{0,-60} {1, 15}", "Nombre", "Color"); foreach (var animal in AnimalesColores) { Console.WriteLine("{0,-60} {1, 15}", animal.Nombre, animal.Color); } } } En LinqQueries.cs: public IEnumerable\<IGrouping\<string, Animal>> AnimalesAgrupadosPorColores() { return animalesCollection .GroupBy(p => p.Color); }
var grupoAnimales = animales.GroupBy(p => p.Color);     foreach(var item in grupoAnimales) {               Console.WriteLine(item.Key);         Console.WriteLine("{0,-60} {1,10}", "Nombre", "Color");         foreach(var subItem in item){          Console.WriteLine("{0,-60} {1,10}", subItem.Nombre,  subItem.Color);        }         Console.WriteLine("\n");    }
var grupoAnimales = animales.GroupBy(p => p.Color); foreach(var item in grupoAnimales) {               Console.WriteLine(item.Key);  Console.WriteLine("{0,-60} {1,10}", "Nombre", "Color");   foreach(var subItem in item){          Console.WriteLine("{0,-60} {1,10}", subItem.Nombre,  subItem.Color);        }         Console.WriteLine("\n");    }
```js 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 resultado = animales.GroupBy(animal => animal.Color); resultado.ToList().ForEach(animal => { Console.WriteLine(animal.Key); animal.ToList().ForEach(animal => Console.WriteLine($"\t {animal.Nombre}")); }); } public class Animal { public string Nombre { get; set; } public string Color { get; set; } } } ```
```c# IEnumerable<IGrouping<string, Animal>> animalesAgrupadosPorColor = animales.GroupBy(p => p.Color); foreach (var grupo in animalesAgrupadosPorColor) { Console.WriteLine($"\nGrupo: {grupo.Key}"); foreach (var animal in grupo) { Console.WriteLine(animal.Nombre); } } ``` IEnumerable\<IGrouping\<string, Animal>> animalesAgrupadosPorColor = animales.GroupBy(p => p.Color);     foreach (var grupo in animalesAgrupadosPorColor)    {      Console.WriteLine($"\nGrupo: {grupo.Key}");      foreach (var animal in grupo)      {        Console.WriteLine(animal.Nombre);      }    }
```txt IEnumerable<IGrouping<string, Animal>> animalesAgrupadosPorColor = animales.GroupBy(p => p.Color); foreach (var grupo in animalesAgrupadosPorColor) { Console.WriteLine($"\nGrupo: {grupo.Key}"); foreach (var animal in grupo) { Console.WriteLine(animal.Nombre); } } ``` IEnumerable\<IGrouping\<string, Animal>> animalesAgrupadosPorColor = animales.GroupBy(p => p.Color);     foreach (var grupo in animalesAgrupadosPorColor)    {      Console.WriteLine($"\nGrupo: {grupo.Key}");      foreach (var animal in grupo)      {        Console.WriteLine(animal.Nombre);      }    }
IEnumerable\<IGrouping\<string, Animal>> animalesAgrupadosPorColor = animales.GroupBy(p => p.Color);     foreach (var grupo in animalesAgrupadosPorColor)    {      Console.WriteLine($"\nGrupo: {grupo.Key}");      foreach (var animal in grupo)      {        Console.WriteLine(animal.Nombre);      }    }
```js IEnumerable<IGrouping<string, Animal>> animalesAgrupadosPorColor = animales.GroupBy(p => p.Color); foreach (var grupo in animalesAgrupadosPorColor) { Console.WriteLine($"\nGrupo: {grupo.Key}"); foreach (var animal in grupo) { Console.WriteLine(animal.Nombre); } } ``` IEnumerable\<IGrouping\<string, Animal>> animalesAgrupadosPorColor = animales.GroupBy(p => p.Color);     foreach (var grupo in animalesAgrupadosPorColor)    {      Console.WriteLine($"\nGrupo: {grupo.Key}");      foreach (var animal in grupo)      {        Console.WriteLine(animal.Nombre);      }    }
```c# IEnumerable<IGrouping<string, Animal>> animalesAgrupadosPorColor = animales.GroupBy(p => p.Color); foreach (var grupo in animalesAgrupadosPorColor) { Console.WriteLine($"\nGrupo: {grupo.Key}"); foreach (var animal in grupo) { Console.WriteLine(animal.Nombre); } } ```
```c# var animalesPorColor = animales.GroupBy(x => x.Color); ```

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}");
          }
}
![](https://static.platzi.com/media/user_upload/image-ad3b299a-969c-451f-905a-09a65b865388.jpg)
```js 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(p => p.Color); foreach (var grupo in listaAnimalesAgrupados ) { Console.WriteLine($"{grupo.Key}"); foreach (var item in grupo) { Console.WriteLine($"{item.Nombre}"); } Console.WriteLine(""); } } public class Animal { public string Nombre { get; set; } public string Color { get; set; } } } ```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(p => p.Color); foreach (var grupo in listaAnimalesAgrupados ) { Console.WriteLine($"{grupo.Key}"); foreach (var item in grupo) { Console.WriteLine($"{item.Nombre}"); } Console.WriteLine(""); } } public class Animal { public string Nombre { get; set; } public string Color { get; set; } } }
![](https://static.platzi.com/media/user_upload/image-30cae0bd-17ce-43be-a150-6a8af1c91370.jpg)
```js 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 resultado = animales.GroupBy(animal => animal.Color); foreach (var item in resultado){ Console.WriteLine($"Color: {item.Key}"); foreach (var item2 in item) { Console.WriteLine(item2.Nombre, item2.Color); } } } public class Animal { public string Nombre {get;set;} public string Color {get;set;} } } ```
```c# IEnumerable<IGrouping<string,Animal>> resultado = animales.OrderBy( p => p.Color). GroupBy(p => p.Color); foreach ( IGrouping<string, Animal> animalItem in resultado) { //"etc." } ``` Aunque no es parte del ejercicio; Segun leí en algun lado, se recomiendo realizar primero un ordenamiento y luego si el proceso de agrupación, esto, con el fin de optimizar recursos; ya que, si se trata de una cantidad de datos masiva, se ve muy afectado si se realiza directamente el proceso de agrupamiento. Quedo atento a correcciones/opiniones .. Gracias.

Les comparto el resultado obtenido.

Yo los acomodé así: ```js IEnumerable<IGrouping<string, Animal>> collecionAnimales = animales.GroupBy(p => p.Color); foreach (var color in collecionAnimales) { Console.WriteLine($"Color: {color.Key}"); foreach (var animal in color) { Console.WriteLine("{0, -10}", animal.Nombre); } Console.WriteLine(new string('-', 10), '\b'); } ```IEnumerable\<IGrouping\<string, Animal>> collecionAnimales = animales.GroupBy(*p* => *p*.Color);        foreach (var color in collecionAnimales)        {            Console.WriteLine($"Color: {color.Key}");            foreach (var animal in color)            {                Console.WriteLine("{0, -10}", animal.Nombre);            }            Console.WriteLine(new string('-', 10), '\b');        }
Comunidad, comparto mi solucion: ```c# 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>> resultado = animales.GroupBy(animal => animal.Color); foreach (var item in resultado) { Console.WriteLine(""); Console.WriteLine($"Color: {item.Key}"); foreach (Animal animal in item) { Console.WriteLine("{0,-10} {1, 9}", animal.Nombre, animal.Color); } } } public class Animal { public string Nombre {get;set;} public string Color {get;set;} } } ```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>> resultado = animales.GroupBy(animal => animal.Color); foreach (var item in resultado) { Console.WriteLine(""); Console.WriteLine($"Color: {item.Key}"); foreach (Animal animal in item) { Console.WriteLine("{0,-10} {1, 9}", animal.Nombre, animal.Color); } } } public class Animal { public string Nombre {get;set;} public string Color {get;set;} } }
```c# // Escribe tu código aquí // Retorna los datos de la colleción Animales agrupada por color var animalesAgrupados = animales.GroupBy(a => a.Color); foreach(var animal in animalesAgrupados) { Console.WriteLine($"\n*** {animal.Key} ***"); foreach(var item in animal) { Console.WriteLine(item.Nombre); } } ```
IEnumerable\<IGrouping\<string, Animal>> AnimalesPorColor = animales.GroupBy(p => p.Color); foreach(var group in AnimalesPorColor){ Console.WriteLine($"Grupo: {group.Key}"); foreach(var item in group){ Console.WriteLine(item.Nombre); } Console.WriteLine("\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 

     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

Resultado de la ejecución: ![](https://static.platzi.com/media/user_upload/image-ebeec13f-8112-4fce-ad86-fc0e144cdf11.jpg) Código: ```js // Retorna los datos de la colleción Animales agrupada por color PrintTitle("\nAnimales Agrupados por Color"); IEnumerable<IGrouping<string, Animal>> AnimalesAgrupados = animales.GroupBy(p => p.Color); foreach (var ani in AnimalesAgrupados){ int num = 0; Console.WriteLine($"\nColor: {ani.Key}"); foreach (var item in ani){ ++num; Console.WriteLine($"{num}. {item.Nombre}"); } } ```
undefined