c#用lambda表达式从列表中选择

本文关键字:列表 选择 表达式 lambda | 更新日期: 2023-09-27 18:02:20

我有一个实体列表,我使用Select从我的实体中获取一些属性。我的实体有一个PrimaryContact属性,这个有一个LastName属性。所以如果我像这样使用它可以正常工作

var b = items.Select(s => s[PropertyName]); //Property name is "PrimaryContact" it's fine.

但如果我使用"PrimaryContact.LastName",这是不工作

var x = items.Select(s => s[PropertyName]); //Property name is "PrimaryContact.LastName" it's not working

PropertyName可能是一切:"PrimaryContact。姓"、"PrimaryContact。FirstName"、"PrimaryContact.Address.City"

有人能帮我一下吗

c#用lambda表达式从列表中选择

如果您只想要一个项目LastName,那么

var x = items.Select(s => s["PrimaryContact"]).FirstOrDefault().LastName;

如果你想收集所有的Lastname项,那么

var x = items.Select(s => s["PrimaryContact"].LastName);

如果你想要所有的属性那么首先选择所有的属性然后遍历它

ar x = items.Select(s => s["PrimaryContact"]);
foreach(var p in x)
 {
    // P.FirstName
    // p.LastName
    // p.Address.City
 }

试试这个,

var x = items.Select(s => s["PrimaryContact"].LastName);

Select返回IEnumerable,所以如果你想在items中所有的LastName,那么:

var b = items.Select(s => s["PrimaryContact"].LastName);

否则,如果您只需要其中一个,则在Select之后使用FirstOrDefault:

var b = items.Select(s => s["PrimaryContact"]).FirstOrDefault().LastName;