我有以下两个对象:
ProjectPrimitives:
Name
ProjectId
StartDate
ProjectDetails
ProjectPrimitives
Description
Location
// Other details
在我的应用程序中,我有一个 List<ProjectDetails>
并想从中解析所有原语以获得 List<ProjectPrimitives>
使用 lambda 表达式。实际上,我想替换这个:
var primList = new List<ProjectPrimitives>();
foreach(ProjectDetails pd in myDetailsList)
{
primList.add(pd.primitives);
}
我已经尝试了一些东西,但找不到正确的语法,如果这实际上可以使用 lambda 语句。我试过的一件事是:
var prims = myList.Where(i => i.primitives).ToList();
但是编译器期望 Where()
中有一个 bool 值功能,我不知道还有什么可以放在那里。
最佳答案
如果ProjectDetails.primitives
是单ProjectPrimitives
, 你需要 Select()
从 ProjectDetails
转换列表至 ProjectPrimitives
:
var prims = myList.Select(i => i.primitives).ToList();
如果是集合,比如List<ProjectPrimitives>
, 你需要 SelectMany()
:
var prims = myList.SelectMany(i => i.primitives).ToList();
关于c# - 编写 lambda 表达式以从对象列表中获取属性列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27725298/