[Pregunta] Sobre métodos extensores II
Dada la siguiente clase:
public class Striker
{
public string Name { get; set; }
public int Goals { get; set; }
public Look Looks { get; set; }
}
public enum Look
{
Handsomd,
Ugly
}
Creamos un método extensor Where:
public static class Extensions
{
public static IEnumerable<Striker> Where(
this IEnumerable<Striker> source,
Func<Striker, bool> filter)
{
foreach (var striker in source)
{
if (filter(striker) && (striker.Looks == Look.Handsomd))
yield return striker;
}
}
}
Y probamos:
class Program
{
static void Main(string[] args)
{
var strikers = new[] {
new Striker { Name = "Ronaldo", Looks = Look.Handsomd, Goals = 46},
new Striker { Name = "Messi", Looks = Look.Ugly, Goals = 50},
new Striker { Name = "Falcao", Looks = Look.Ugly, Goals = 26}
};
var result = strikers.Where(s => s.Goals > 40);
foreach (var striker in result)
{
Console.WriteLine(striker.Name);
}
Console.Read();
}
}
¿Cual creéis que será la salida?
…
Un saludo