首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >system.collections.generic.list到system.collections.generic.ienumerable

system.collections.generic.list到system.collections.generic.ienumerable
EN

Stack Overflow用户
提问于 2017-04-30 21:43:40
回答 2查看 2.8K关注 0票数 0

我有一个方法,其中list不能转换为ienumerable。我该如何选角?

代码语言:javascript
复制
 public ActionResult Attending()
 {
    var userId = User.FindFirst(ClaimTypes.NameIdentifier).Value;
    var gigs = _context.Attendances.Include(a => a.Gig.Artist).Include(a => a.Gig.Genre).Where(a => a.AttendeeId == userId).ToList();
    var viewModel = new GigsViewModel()
    {
       UpcomingGigs = gigs,
       ShowActions = User.Identity.IsAuthenticated,
       Heading = "Gigs I'm Attending"
       };
       return View("Gigs", viewModel);
    }

这是我的ViewModel:

代码语言:javascript
复制
public class GigsViewModel
{
   public IEnumerable<Gig> UpcomingGigs { get; set; }
   public bool ShowActions { get; set; }
   public string Heading { get; set; }
}
EN

回答 2

Stack Overflow用户

发布于 2017-04-30 21:50:42

您也可以先获取所有与会者,然后选择演出。

代码语言:javascript
复制
IEnumerable<Gig> gigs = _context.Attendances.Where(a => a.AttendeeId == userId).Select(a => a.Gig).ToList();

请注意,如果可能有多个相似的gig,那么您可能只需要使用distinct的一组不同的gig:

代码语言:javascript
复制
IEnumerable<Gig> gigs = _context.Attendances.Where(a => a.AttendeeId == userId).Select(a => a.Gig).Distinct().ToList();

欲了解更多信息,请访问:https://msdn.microsoft.com/en-us/library/bb534803(v=vs.110).aspx

已编辑:编辑旧建议、不同建议和已添加的选择。

票数 0
EN

Stack Overflow用户

发布于 2017-04-30 21:53:18

尝试使用下面的代码,AsEnumerable()将完成您的工作

代码语言:javascript
复制
var gigs = _context.Attendances.Where(a => a.AttendeeId == userId).select(a=> 
new Gig()
 {
   property = a.property //assuming property, you can repeat the same for other properties of Gig
 }).AsEnumerable();

Linq数据库查询的结果通常是从IEnumerable、IQueryable和IEnumerable派生的IQueryable。

在本例中,它是linq数据库查询,因此需要调用AsEnumerable();

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43707075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档