SelectMany中的SelectMany

时间:2014-09-05 06:30:11

标签: c# linq

我试过这两个但是没有用?怎么做?

.SelectMany(x => x.SectionEvents).SelectMany(t => t.Section)

.SelectMany(x => x.SectionEvents.SelectMany(t => t.Section))

错误:

  

方法的类型参数   'System.Linq.Enumerable.SelectMany<TSource,TResult>(System.Collections.Generic.IEnumerable<TSource>, System.Func<TSource,System.Collections.Generic.IEnumerable<TResult>>)'   无法从使用中推断出来。尝试指定类型参数   明确。

EEvent.List<EEvent>("CalendarPeriodUId", ECalendarPeriod.Current().UId).Value.ToList()
                .SelectMany(x => x.SectionEvents.SelectMany(t => t.Section)).ToFCollection().Bind(ddlSection, "SectionName");

1 个答案:

答案 0 :(得分:2)

我认为你想要的是通过连接表从事件中选择所有部分。

public class Event
{
    public ICollection<SectionEvent> SectionEvents { get; set; }
}
public class SectionEvent
{
    public Event Event { get; set; }
    public Section Section { get; set; }
}
public class Section
{
    public ICollection<SectionEvent> SectionEvents { get; set; }
}

如果是这样,那么您需要的是SelectManySelect

var q = events.SelectMany(e => e.SectionEvents).Select(se => se.Section);