我的问题似乎很容易,但我无法理解。
假设我有一个“根”IEnumerable对象。每个对象都有IEnumerable字符串。我怎样才能获得这些字符串的单个IEnumerable?
可能的解决方案是:
public IEnumerable<string> DoExample()
{
foreach (var c in rootSetOfObjects)
{
foreach (var n in c.childSetOfStrings)
{
yield return n;
}
}
}
但也许Linq有一个神奇的解决方案?
答案 0 :(得分:5)
rootSetOfObjects.SelectMany(o => o.childSetOfStrings)
答案 1 :(得分:1)
Linq中的SelectMany应该适合您: http://msdn.microsoft.com/en-us/vcsharp/aa336758.aspx#SelectManyCompoundfrom1
它肯定适用于您的收藏和复合收藏