Обрабатывать несколько объектов IEnumerable как один объект IEnumerable - PullRequest
0 голосов
/ 12 июня 2010

Мне кажется, что мой вопрос прост, но я не могу понять.

Допустим, у меня есть "корневой" IEnumerable объектов.Каждый объект имеет IEnumerable из строк.Как я могу получить один IEnumerable из этих строк?

Возможное решение заключается в следующем:

public IEnumerable<string> DoExample()
{
    foreach (var c in rootSetOfObjects)
    {
        foreach (var n in c.childSetOfStrings)
        {
            yield return n;
        }
    }
}

Но, может быть, есть волшебное решение с Linq?

Ответы [ 2 ]

5 голосов
/ 12 июня 2010
rootSetOfObjects.SelectMany(o => o.childSetOfStrings)
1 голос
/ 12 июня 2010

в Linq есть SelectMany, который должен работать для вас: http://msdn.microsoft.com/en-us/vcsharp/aa336758.aspx#SelectManyCompoundfrom1

он определенно работает для вашей коллекции и составных коллекций

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...