gpt4 book ai didi

c# - 带有大量嵌套列表的列表上的 LINQ

转载 作者:行者123 更新时间:2023-12-04 23:54:38 27 4
gpt4 key购买 nike

我在使用嵌套列表时遇到了麻烦。所以我有3个类(class):

public class Class1
{
public string Name {get;set;}
public List<Class2> Class2List {get;set;}
}
public class Class2
{
public string Name {get;set;}
public List<Class3> Class3List {get;set;}
}
public class Class3
{
public string Name {get;set;}
}

我想从 Class1 中选择所有 Class3.Name 其中 Class2.Name = "something"并且重要的是结果将是 IEnumerable 字符串 .我该如何解决?

最佳答案

LINQ 表达式可以有多个嵌套 from条款:

// nested from clauses
var names = from c1 in myClass1List
from c2 in c1.Class2List
where c2.Name == "something"
from c3 in c2.Class3List
select c3.Name;

为了完整起见,这里有两个使用方法语法的变体:
var names = myClass1List
.SelectMany(c1 => c1.Class2List.Where(c2 => c2.Name == "something"))
.SelectMany(c2 => c2.Class3List.Select(c3 => c3.Name));

var names = myClass1List
.SelectMany(c1 => c1.Class2List
.Where(c2 => c2.Name == "something")
.SelectMany(c2 => c2.Class3List
.Select(c3 => c3.Name)));

关于c# - 带有大量嵌套列表的列表上的 LINQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18736513/

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