LINQ名单上有很多嵌套列表 [英] LINQ on List with lot of nested List

查看:473
本文介绍了LINQ名单上有很多嵌套列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有麻烦嵌套列表。所以,我有3类:

I have got trouble with nested lists. So I have 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;}
}

我想选择所有Class3.Name哪里Class2.Name = 1级,从东西和重要的结果将是的字符串的IEnumerable 。我应该如何解决?

I would like to select all Class3.Name where Class2.Name = "something" from Class1 and important that the result will be IEnumerable string . How should I resolve it?

推荐答案

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

LINQ expressions can have multiple nested from clauses:

// 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;






有关完整,这里使用方法的语法两个变种


For completeness, here are two variants using method syntax:

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)));

这篇关于LINQ名单上有很多嵌套列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆