using System;
using System.Collections.Generic;
using System.Linq;
class Program {
public static void Main (string[] args) {
List<Animal> animales =newList<Animal>();animales.Add(newAnimal(){Nombre="Hormiga",Color="Rojo"});animales.Add(newAnimal(){Nombre="Lobo",Color="Gris"});animales.Add(newAnimal(){Nombre="Elefante",Color="Gris"});animales.Add(newAnimal(){Nombre="Pantegra",Color="Negro"});animales.Add(newAnimal(){Nombre="Gato",Color="Negro"});animales.Add(newAnimal(){Nombre="Iguana",Color="Verde"});animales.Add(newAnimal(){Nombre="Sapo",Color="Verde"});animales.Add(newAnimal(){Nombre="Camaleon",Color="Verde"});animales.Add(newAnimal(){Nombre="Gallina",Color="Blanco"});// Escribe tu código aquí// filtra todos los animales que sean de color verde que su nombre inicie con una vocalanimales.Where(t=> t.Color.Equals("Verde")&&(newstring[]{"A","E","I","O","U"}).Contains(t.Nombre[0].ToString().ToUpper())).ToList().ForEach(t=>Console.WriteLine("{0, -10} {1, 8}", t.Nombre, t.Color));
}
public class Animal
{
public string Nombre {get;set;}
public string Color {get;set;}
}
}
Esta es mi propuesta de solucion al ejercicio, utilice ambas sintaxis (Method Syntax y Query Syntax):
using System;using System.Collections.Generic;using System.Linq;using System.Runtime.CompilerServices;classProgram{publicstaticvoidMain(string[] args){List<Animal> animales =newList<Animal>(); animales.Add(newAnimal(){Nombre="Hormiga",Color="Rojo"}); animales.Add(newAnimal(){Nombre="Lobo",Color="Gris"}); animales.Add(newAnimal(){Nombre="Elefante",Color="Gris"}); animales.Add(newAnimal(){Nombre="Pantegra",Color="Negro"}); animales.Add(newAnimal(){Nombre="Gato",Color="Negro"}); animales.Add(newAnimal(){Nombre="Iguana",Color="Verde"}); animales.Add(newAnimal(){Nombre="Sapo",Color="Verde"}); animales.Add(newAnimal(){Nombre="Camaleon",Color="Verde"}); animales.Add(newAnimal(){Nombre="Gallina",Color="Blanco"});// Escribe tu código aquí// filtra todos los animales que sean de color verde que su nombre inicie con una vocal//imprimir los animales filtradosvar animalesFiltrados =filtroAnimales(animales);foreach(var animal in animalesFiltrados){Console.WriteLine($"Nombre: {animal.Nombre}, Color: {animal.Color}");}}publicstaticIEnumerable<Animal>filtroAnimales(List<Animal> animales){//Extension method//animales.Where(a => a.Color == "Verde" && "AEIOU".Contains(a.Nombre[0])).ToList();//Query syntaxreturnfrom a in animales
where a.Color=="Verde"&&"AEIOU".Contains(a.Nombre[0]) select a;}publicclassAnimal{public string Nombre{ get; set;}public string Color{ get; set;}}}
Resultado:
Animales filtrados:Nombre:Iguana,Color:Verde
using System;using System.Collections.Generic;using System.Linq;using System.Text.RegularExpressions;using System;using System.Collections.Generic;using System.Linq;class Program {public staticvoidMain(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í// filtra todos los animales que sean de color verde que su nombre inicie con una vocalvar animalesFiltrados = from animal in animales
where animal.Color =="Verde"&&"AEIOUaeiou".Contains(animal.Nombre[0]) select animal;Console.WriteLine("Animales filtrados:");foreach(var animal in animalesFiltrados){ Console.WriteLine($"Nombre: {animal.Nombre}, Color: {animal.Color}");}}
public class Animal
{public string Nombre {get;set;}public string Color {get;set;}}}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
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í
// filtra todos los animales que sean de color verde que su nombre inicie con una vocal
var animalesFiltrados = from animal in animales
where animal.Color == "Verde" && "AEIOUaeiou".Contains(animal.Nombre[0])
string[] vowels =["a","e","i","o","u"];IEnumerable<Animal> animalsThatStartsWithVowelAndMatchColorResult =from _animal in animales
where vowels.Contains(_animal.Nombre[0].ToString().ToLower())&& _animal.Color=="Verde" select _animal;foreach(Animal animal in animalsThatStartsWithVowelAndMatchColorResult){Console.WriteLine(animal.Nombre);}
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í// filtra todos los animales que sean de color verde que su nombre inicie con una vocalvar vocales = new HashSet<char>{'a','e','i','o','u'};IEnumerable<Animal> animalesFiltrados = animales.Where(animal => animal.Color =="Verde"&& vocales.Contains(char.ToLower(animal.Nombre[0])));PrintValues(animalesFiltrados);voidPrintValues(IEnumerable<Animal> animales){ Console.WriteLine("{0,-30} {1, 15}\n","Nombre","Color");foreach(var animal in animales){ Console.WriteLine("{0,-30} {1, 154}", animal.Nombre, animal.Color);}}
public class Animal
{ public string Nombre { get; set;} public string Color { get; set;}}
var animalesVerdes=animales.Where(animal=>animal.Color=="Verde"&&"AEIOUaeiou".Contains(animal.Nombre[0])); animalesVerdes.ToList().ForEach(animal=>Console.WriteLine(animal.Nombre));Console.WriteLine(animalesVerdes.Count());
Saludos, mi codigo:
// filtra todos los animales que sean de color verde que su nombre inicie con una vocal
Aqui trate de usar solamente Query expression, pero no lo consegui, es posible (solamente usando query expressions)?
List<string> vowels =newList<string>(){"a","e","i","o","u"};var animalsLocal =from a in animals
where a.Color.ToLower()=="green"&& vowels.Any(vowel=> a.Name.ToLower().StartsWith(vowel)) select a;
Me salio un mix.
Tampoco veo una forma fácil de hacerlo, es por esto que query expression aveces se usa muy poco, al final toca hacer este tipo de combinaciones.