using System.Collections.Generic;
using System.Linq.Expressions;
public static void Main()
public IEnumerable<T> GetShort<T>
public IEnumerable<Abc>? Abcs {get;set;}=default!;
public IEnumerable<AbcDto>? Dtos {get;set;}=[];
public IEnumerable<AbcShortDto>? ShortDtos {get;set;}=[];
public class GetResult(){
public string[] Cars=["Audi","Toyota","Honda","Chevrolet","Buick","Porsche","Nissan","Mazda","Dodge","Ford","GMC","Chrysler"];
public string[] Shoes=["Nike","New Balance","Puma","Rebok","Skechers","Sebago","Keds","Kangaroos","Adidas","UnderArmour","Doc Martins"];
public string Name {get;set;}=default!;
public int Weight {get;set;}
public string FavoriteShoes {get;set;}=default!;
public string FavoriteCar {get;set;}=default!;
public interface IDto<T>{}
public interface IAbcDto:IDto<Abc>{}
public class AbcDto:IAbcDto{
public string Name {get;set;}=default!;
public int Weight {get;set;}
public string FavoriteShoes {get;set;}=default!;
public string FavoriteCar {get;set;}=default!;
public class AbcShortDto:IAbcDto{
public string Name {get;set;}=default!;
public string FavoriteShoes {get;set;}=default!;
public static class defs{
public static Faker<Abc> GetAbc(){
var faker=new Faker<Abc>();
var abc=Activator.CreateInstance<Abc>();
return faker.RuleFor(a=>a.Id,b=>b.Random.Int(1,999)).RuleFor(a=>a.Cars,a=>abc.Cars).RuleFor(a=>a.Shoes,abc.Shoes).RuleFor(a=>a.Name,a=>a.Person.FullName).RuleFor(a=>a.Weight,a=>a.Random.Int(150,300)).RuleFor(a=>a.FavoriteCar,b=>b.PickRandom<string>(abc.Cars)).RuleFor(a=>a.FavoriteShoes,b=>b.PickRandom<string>(abc.Shoes));