gpt4 book ai didi

c# - 如何从列表 linq C# 的列表中获取列表

转载 作者:太空宇宙 更新时间:2023-11-03 23:02:43 25 4
gpt4 key购买 nike

我有类(class):

  public class Person
{
public string Name{get;set;}
public bool IsMarried{get;set;}
public List<Child> Children { get; set; }
}
public class Child
{
public bool Greater5 { get; set; }
public List<MyColor> ListColor { get; set; }
}
public class MyColor
{
public string History { get; set; }
public string Type { get; set; }
}

我想为所有 IsMarried=true 和 Children.Greater5 = true 的人获取一个列表字符串(MyColor.Type 不为空)。我可以通过以下方式实现:

  List<Person> list = personList.Where(l => l.IsMarried == true).ToList();
List<Child> childList = list.SelectMany(c => c.Children).Where(test => test.Greater5 == true).ToList();
List<string> wantedList= childList.SelectMany(test => test.ListColor.Where(c => !String.IsNullOrEmpty(c.Type)).Select(t => t.Type)).ToList();

但我想知道是否可以使用 Linq 来实现更简单?

最佳答案

您可以链接 SelectMany 来展平嵌套的子项。

List<string> wantedList = personList
.Where(person => person.IsMarried)
.SelectMany(person => person.Children
.Where(child => child.Greater5)
.SelectMany(child => child.ListColor
.Where(color => !String.IsNullOrEmpty(color.Type))
.Select(color => color.Type)))
.ToList();

关于c# - 如何从列表 linq C# 的列表中获取列表 <string>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42511960/

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