编写 lambda 表达式以从对象列表中获取属性列表
本文关键字:列表 获取 属性 对象 lambda 表达式 编写 | 更新日期: 2023-09-27 18:35:44
我有以下两个对象:
ProjectPrimitives:
Name
ProjectId
StartDate
ProjectDetails
ProjectPrimitives
Description
Location
// Other details
在我的应用程序中,我有一个List<ProjectDetails>
,并希望解析它们中的所有原语,以使用 lambda 表达式获取List<ProjectPrimitives>
。实际上,我想替换它:
var primList = new List<ProjectPrimitives>();
foreach(ProjectDetails pd in myDetailsList)
{
primList.add(pd.primitives);
}
我已经尝试了一些方法,但找不到正确的语法,如果这实际上可以使用lambda语句的话。我尝试过的一件事是:
var prims = myList.Where(i => i.primitives).ToList();
但是编译器期望在 Where()
函数中有一个布尔值,我不知道还能放什么。
如果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();