Operator lambda przy implementacji interfejsu

0

Próbuję zrozumieć zastosowanie operatora lambda do innych zadań, niż delegaty.
W prostych przykładach daję radę. Ale mam poniższą implementację interfejsu IQueryable i nie potrafię dodać .AsQueryable w linii: public IQueryable<Product>Products { get;} Poniżej kod z operatorem =>, oraz mój bez =>.


  public class FakeProductRepository : IProductRepository
    {
        public IQueryable<Product> Products => new List<Product>
        {
            new Product { Name = "Piłka nożna", Price = 25 },
            new Product { Name = "Deska surfingowa", Price = 179 },
            new Product { Name = "Buty do biegania", Price = 95 }
        }.AsQueryable<Product>();

    }

//moja przeróbka

  public class FakeProductRepository : IProductRepository
    {
        List<Product> List = new List<Product>
        {
            new Product { Name = "Piłka nożna", Price = 25 },
            new Product { Name = "Deska surfingowa", Price = 179 },
            new Product { Name = "Buty do biegania", Price = 95 }

        };
        //  public IQueryable<Product>.AsQueryable() Products { get; };
            public IQueryable<Product>Products { get;}   

public interface IProductRepository //do pobrania danych z bazy. Pobiera tylko wycinek i można wrzucić do List lub Array
    {
        IQueryable<Product> Products { get; }
    }

0
korekta .AsQueryable() powinno być raczej dla List<Product> List = new List<Product>
1

To nie jest żaden operator lambdy tylko expression body definition. Taki cukier składniowy, żeby nie pisać get. Wersja bez => jest trywialna, wystarczy to zapisać w klasycznej składni właściwości z get i return.

P.S. Jeśli masz IQueryable, to nie masz repozytorium.

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