gpt4 book ai didi

c# - Linq 从自定义嵌套对象列表中选择项目列表

转载 作者:行者123 更新时间:2023-11-30 15:56:16 25 4
gpt4 key购买 nike

我为我的应用程序创建了以下对象模型

public class Object
{
public List<Node> Nodes { get; set; }
}

public class Node
{
public InstrumentData InstrumentData { get; set; }
}

public class InstrumentData
{
public List<MySysData> MySysDataList { get; set; }
}

public class MySysData
{
public string SystemName { get; set; }
}

现在我有了节点的对象列表。我想从对象节点列表中选择非空“SystemName”到字符串列表
我尝试了以下查询,但仍然没有达到预期。

 var test = Object.Nodes.ToList<Node>()
.Select(x => x.InstrumentData?.MySysDataList.ToList<MySysData>()
.Select(y => y.SystemName)
.ToList()) ;

最佳答案

您需要WhereSelectMany:

List<string> sysNameList = Object.Nodes
.Where(x => x.InstrumentData?.MySysDataList != null)
.SelectMany(x => x.InstrumentData.MySysDataList
.Select(y => y.SystemName)
.Where(sName => sName != null))
.ToList();

如果要删除重复项,请在最终 ToList 之前添加 Distict

关于c# - Linq 从自定义嵌套对象列表中选择项目列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47135786/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com