2016-05-27 4 views
0

У меня есть метод, который возвращает список MyClass. В рамках этого метода я разделил список MyClass на более мелкие куски, скажем 500 элементов. Теперь я задаюсь вопросом, возможно ли это вместе с объявлением yield. В настоящее время у меня есть этот код. Однако мне любопытно, есть ли способ вернуть всю совокупность без этой грязной второй внутренней петли.Доходность возвращает кучу элементов

IEnumerable<MyClass> DoSomething() 
{ 
    List<MyClass> myList = ... 
    foreach(var chunk in myList.Chunk(500)) // split the list in smaller lists 
    { 
     foreach(MyClass m in chunk) yield return m; 
    } 
} 

Конечно, это работает, но мне интересно, если я могу использовать yield вернуть целую кучу deferredly.

+0

Что 'Chunk' делать? –

+0

он разбивает список на список списков – HimBromBeere

+0

Можете ли вы поделиться реализацией? –

ответ

0

Предполагая, что Chunk возвращает какой-то List<> вы могли бы сделать:

IEnumerable<IList<MyClass>> DoSomething() 
{ 
    List<MyClass> myList = ... 
    foreach(var chunk in myList.Chunk(500)) // split the list in smaller lists 
    { 
     yield return chunk; 
    } 
} 
Смежные вопросы