如何获取列表中位于另一个列表中的所有项目?

时间:2012-09-13 20:01:18

标签: visual-studio-2010 linq list c#-4.0 lambda

我知道标题不是很好,但我认为代码会更好。

说我有以下课程:

public class Test
{
    public List<Object> ObjectList = new List<Object>;
}

现在假设我的list<Test> listOfTest列表中有100个项目,列表中的每个Test对象的List<Object> ObjectList列表中都有100个项目。

我可以使用LINQ,Lambda表达式或其他任何东西快速获取每个Test对象的所有Objects吗?

目前我必须做以下事情:

var items = new List<Object>();
foreach(var testobj in listOfTest)
{
    items.AddRange(testObj.ObjectList);
}

我知道我可以做listOfTest.foreach(),但它真的归结为仍然需要foreach。

我个人不喜欢这样,并认为它几乎是一个黑客,必须有一个更好的方法来做到这一点。所以问题基本上是,还有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

怎么样:

var items = listOfTest.SelectMany(lt => lt.myInnerObject).ToList();