using System.Collections.Generic;
public String Nome {get;set;}
public String Telefone {get;set;}
public String Email {get;set;}
public String Site {get;set;}
public class Repositorio<TEntity>
protected IEnumerable<TEntity> FakeData;
public IEnumerable<dynamic> GetAll(Func<TEntity, dynamic> Select)
.Where(s => s.Nome.StartsWith("M"))
public class RepositorioPessoas : Repositorio<Pessoa>
public RepositorioPessoas()
FakeData = new List<Pessoa>()
Email = "maria@site.com",
public static void Main()
var rep = new RepositorioPessoas();
foreach (var item in rep.GetAll(s => s.Nome))