List of Interfaces vs. List of Derived Type - Cannot Convert Expression Type to Return Type
问题 Why does this work: public IList<ICoupon> GetCouponsForSite(string siteSlug) { var coupons = _db.Coupons.Where(x => x.Site.slug == siteSlug) .Select(x => new Coupon(x.id)); var list = new List<ICoupon>(); foreach (var coupon in coupons) { list.Add(coupon); } return list; } But this does does not work (error - cannot convert expression type to return type): public IList<ICoupon> GetCouponsForSite(string siteSlug) { return _db.Coupons.Where(x => x.Site.slug == siteSlug) .Select(x => new Coupon