2014-09-05 3 views
0

Я пробовал оба из этого, но не работал? как это сделать?SelectMany inside SelectMany

.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"); 
+0

Компилятор сообщает вам, что делать. –

+0

Просим дать короткий, но полный пример. Я бы не ожидал, что вам нужно будет указать аргументы типа. –

+0

- этот пример, который вам подходит, @ Jon Skeet? – Mert

ответ

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; } 
} 

Если это так, то, что вам нужно, это SelectMany и Select.

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

Хорошая догадка !!!!! – Mick

+0

да, вы правы! второй SelectMany был не прав. спасибо за помощь :) – Mert

Смежные вопросы