LINQ查询从嵌套集合中获取对象

时间:2014-03-20 04:10:47

标签: linq

假设您有一个集合集合 例如:CEO-> VPS-> GMs - > .. 首席执行官将包含副总裁的副总裁,副总裁将收集通用汽车等的集合。 假设你需要找到一个特定的GM就是别名。如果给出了员工别名,请编写linq查询以获取员工详细信息。

1 个答案:

答案 0 :(得分:0)

您可以尝试下面的内容

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            CeoCollection myCEOs = new CeoCollection();

            var myGM = myCEOs.SelectMany(a => a.DummyVps.SelectMany(b => b.DummyGms.FindAll(c => c.Alias == "VeryDumb")));
        }
    }

    public abstract class Employee
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Alias { get; set; }
    }

    public class CeoCollection : List<Ceo> { }
    public class Ceo : Employee
    {
        public VpCollection DummyVps { get; set; }
    }

    public class VpCollection : List<Vp> { }
    public class Vp : Employee
    {
        public GmCollection DummyGms { get; set; }
    }

    public class GmCollection : List<Gm> { }
    public class Gm : Employee
    {

    }
}