Linq获取指定的孩子和他们的父母

学习者

我有两个班的父母和孩子。我想让所有满足其子女条件的父母,例如所有父母及其子女。我想使用Linq我使用了以下Linq查询,它返回了所有带女童的父母,但是,儿童名单也包含了男童。我只想让父母和他们的小孩来List<Parent> parentsAndFemaleChildren请参阅以下Linq查询:

List<Parent> parentsAndFemaleChildren = Parents
    .Where(p => p.Children.Any((c => c.Gender == "Female")))
    .ToList();

填充数据的代码如下所示。

public class Parent
{
    public int ParentId {get;set;}
    public string ParentName {get;set;}
    public List<Child> Children {get;set;}
}
public class Child
{
    public int ChildId {get;set;}
    public string ChildName {get;set;}
    public string Gender {get;set;}
    public int ParentId {get;set;}
}

我已经按照以下方式填充了数据。

public static void Main()
    {
        List<Parent> Parents = new List<Parent>();

        Parent p1 = new Parent();
        p1.ParentId = 1;
        p1.ParentName = "Parent 1";
        Parents.Add(p1);    


        Child p1C1 = new Child();
        p1C1.ChildId = 1;
        p1C1.ChildName = "Parent 1 Child 1";
        p1C1.Gender = "Male";
        p1C1.ParentId = 1;

        p1.Children = new List<Child>();

        p1.Children.Add(p1C1);

        Child p1C2 = new Child();
        p1C2.ChildId = 2;
        p1C2.ChildName = "Parent 1 Child 2";
        p1C2.Gender = "Female";
        p1C2.ParentId = 1;

        p1.Children.Add(p1C2);

        Parent p2 = new Parent();
        p2.ParentId = 2;
        p2.ParentName = "Parent 2";
        Parents.Add(p2);

        Child p2C1 = new Child();
        p2C1.ChildId = 3;
        p2C1.ChildName = "Parent 2 Child 1";
        p2C1.Gender = "Female";
        p2C1.ParentId = 2;

        p2.Children = new List<Child>();

        p2.Children.Add(p2C1);

        Child p2C2 = new Child();
        p2C2.ChildId = 4;
        p2C2.ChildName = "Parent 2 Child 2";
        p2C2.Gender = "Male";
        p2C2.ParentId = 2;

        p2.Children.Add(p2C2);

        Parent p3 = new Parent();
        p3.ParentId = 3;
        p3.ParentName = "Parent 3";
        Parents.Add(p3);

        Child p3C1 = new Child();
        p3C1.ChildId = 5;
        p3C1.ChildName = "Parent 3 Child 1";
        p3C1.Gender = "Male";
        p3C1.ParentId = 3;

        p3.Children = new List<Child>();

        p3.Children.Add(p3C1);


        DisplayFemaleChildrenAndParents(Parents);
    }

    public static void DisplayFemaleChildrenAndParents(List<Parent> Parents)
    {
        List<Parent> parentsAndFemaleChildren = Parents.Where(p => p.Children.Any((c => c.Gender == "Female"))).ToList();
        Console.WriteLine("\nShould Display Parents and their Female children details ONLY\n");
        foreach(Parent p in parentsAndFemaleChildren)
        {       
            Console.WriteLine("***********");           
            foreach(Child c in p.Children)
            {               
                Console.WriteLine(p.ParentName + " - " + c.ChildName + " - " + c.Gender);
            }
            Console.WriteLine("***********");
        }
    }

完整的代码可以看出,并通过运行拨弄DOTNET点击此处

升压

如果您需要过滤仅有女童的父母,则应使用ALLlinq方法。

MSDN关于.All方法

确定序列中的所有元素是否都满足条件。

List<Parent> parentsAndFemaleChildren = Parents
    .Where(p => p.Children.All((c => c.Gender == "Female"))).ToList();

如果您想让父母育有至少一个女童,并且只选择女童,则可以使用以下select方法Where

List<Parent> parentsAndFemaleChildren = Parents
    .Where(p => p.Children.Any((c => c.Gender == "Female")))
    .Select(s => new Parent { ParentId = s.ParentId, ParentName = s.ParentName, 
        Children = s.Children.Where(ch => ch.Gender == "Female").ToList()}).ToList();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

获取用户列表和他们的评论(Django Serializers)

来自分类Dev

父母和他的孩子在新行中的jQuery总和

来自分类Dev

为什么“位置:绝对”孩子不尊重他们的相对父母?

来自分类Dev

正则表达式以匹配他们,他们的,他们的,他们的和他们的'

来自分类Dev

如何从GKLeaderboard加载好友分数和他们的名字?

来自分类Dev

C 如何获得玩家的数量和他们的名字

来自分类Dev

SQL 查询返回每个用户和他们的朋友

来自分类Dev

我想在 C++ 中排列结构。通过他们的标记和他们的其他属性。

来自分类Dev

如果他们有父母班,则隐藏班

来自分类Dev

就拿元素,直到一定的性格和他们组RxJava

来自分类Dev

SQLite书店:最后的学生和他们订购的所有书

来自分类Dev

使用Python从element和他的孩子那里获取所有属性

来自分类Dev

不能将两个后代与他们的父母同住

来自分类Dev

如何css样式灵活的元素来匹配他们的父母

来自分类Dev

Linq父母有多个孩子

来自分类Dev

当他们都是反应组件时,给孩子分配什么类型

来自分类Dev

终端仿真器在收到SIGKILL后如何杀死他们的孩子?

来自分类Dev

如何派生n个孩子并让他们在C语言中执行不同的任务?

来自分类Dev

Neo4j:与他们的孩子一起获得顶级节点

来自分类Dev

写一个python函数。要求用户输入人名和他们的年龄,它将放入一个空字典并返回

来自分类Dev

使用指针获取父母的孩子

来自分类Dev

使用指针获取父母的孩子

来自分类Dev

让孩子们等到收到父母的信号

来自分类Dev

使用课程给父母的孩子们样式

来自分类Dev

让孩子们遵守父母的宽度

来自分类Dev

如何获取用户 id 并返回他的帖子以及他们的评论 n angular 6

来自分类Dev

跟踪孩子的浏览历史记录,即使他们知道如何手动清除它

来自分类Dev

将地址指定为“收件人”,但不要发送给他们

来自分类Dev

在LINQ中查找有孩子的父母记录

Related 相关文章

  1. 1

    获取用户列表和他们的评论(Django Serializers)

  2. 2

    父母和他的孩子在新行中的jQuery总和

  3. 3

    为什么“位置:绝对”孩子不尊重他们的相对父母?

  4. 4

    正则表达式以匹配他们,他们的,他们的,他们的和他们的'

  5. 5

    如何从GKLeaderboard加载好友分数和他们的名字?

  6. 6

    C 如何获得玩家的数量和他们的名字

  7. 7

    SQL 查询返回每个用户和他们的朋友

  8. 8

    我想在 C++ 中排列结构。通过他们的标记和他们的其他属性。

  9. 9

    如果他们有父母班,则隐藏班

  10. 10

    就拿元素,直到一定的性格和他们组RxJava

  11. 11

    SQLite书店:最后的学生和他们订购的所有书

  12. 12

    使用Python从element和他的孩子那里获取所有属性

  13. 13

    不能将两个后代与他们的父母同住

  14. 14

    如何css样式灵活的元素来匹配他们的父母

  15. 15

    Linq父母有多个孩子

  16. 16

    当他们都是反应组件时,给孩子分配什么类型

  17. 17

    终端仿真器在收到SIGKILL后如何杀死他们的孩子?

  18. 18

    如何派生n个孩子并让他们在C语言中执行不同的任务?

  19. 19

    Neo4j:与他们的孩子一起获得顶级节点

  20. 20

    写一个python函数。要求用户输入人名和他们的年龄,它将放入一个空字典并返回

  21. 21

    使用指针获取父母的孩子

  22. 22

    使用指针获取父母的孩子

  23. 23

    让孩子们等到收到父母的信号

  24. 24

    使用课程给父母的孩子们样式

  25. 25

    让孩子们遵守父母的宽度

  26. 26

    如何获取用户 id 并返回他的帖子以及他们的评论 n angular 6

  27. 27

    跟踪孩子的浏览历史记录,即使他们知道如何手动清除它

  28. 28

    将地址指定为“收件人”,但不要发送给他们

  29. 29

    在LINQ中查找有孩子的父母记录

热门标签

归档