c# - zmiana obecnego kodu na użycie typu generycznego. // Prosty przykład generycznego.

0

Witam, takie cuś. Mój kod zastosował automatycznie korzystanie z typu generycznego przy tworzeniu 'select new'. A ja bym chciał to napisać w sposób to taki, że sam określam jakich typów używa lista, tylko jak?

private void myMethod()
        {
            using (var dc = new testingBaseEntities())
            {
                var ludzie = from l in dc.osobies

                             select new
                             {
                                 id = l.id,
                                 imie = l.imie,
                                 nazwisko = l.nazwisko,
                                 wiek = l.wiek

                             };

                GridView1.DataSource = ludzie.ToList();
                GridView1.DataBind();

// jakby ktoś jeszcze podał łopatologiczny przykład generycznego.

1

Tu są przykłądy dal kodu generycznego

public abstract class ARepository<TEntity>
        where TEntity : WBaseEntity
    {
        protected WFMSContext ctx;

        public ARepository(WFMSContext ctx)
        {
            this.ctx = ctx;
        }

        public IQueryable<TEntity> GetAll()
        {
            return ctx.Set<TEntity>().Where(p => p.Removed == null);
        }

        public TEntity GetById(long Id)
        {
            return ctx.Set<TEntity>().Find(Id);
        }
}
public abstract class WBaseEntity
    {
        [Key]
        public long Id { get; set; }
        public string Name { get; set; }
        [Column(TypeName = "datetime2")]
        public DateTime Created { get; set; }
        [Column(TypeName = "datetime2")]
        public DateTime? Removed { get; set; }
    }

To co ty zrobiłeś to raczej stworzenie obiektu anonimowego

2

mylisz troche pojecia, przy select new tworzony jeste typ anonimowy a nie generyczny.

o takie cos ci chodzi?

IEnumerable<Czlowiek> ludzie = from l in dc.osobies 
   select new Czlowiek(/*...*/);

btw nazwa kolekcji osobies daje rade ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1