LINQ 查询多级对象

来源:互联网 发布:linux 性能监控工具 编辑:程序博客网 时间:2024/05/30 02:25

LINQ查询多级对象,这是不同于常规的SQL查询的情形。在SQL查询,由于面对的是关系形数据库,它所对应的对象也就是一个个有关系的表而已,而每个表都是一个二维结构。但是在实际项目的对象实体中,可能存在一个对象有多级属性,这种查询可以说是LINQ所特有的,为此LINQ新提供了SelectMany来处理这一过程。

SelectMany

其实就是使用多个from子句来映射不同层次的对象,看下面的例子。

 

string nameList1 = "操作系统 汇编语言";

string nameList2 = "论语 宋词赏析";

List<string> catalogs= new List<string>() { nameList1, nameList2 };

var query = from catalog in catalogs
            from word in catalog.Split(' ')
            select word;

foreach (string s in query)
    Console.WriteLine(s);

/* This code produces the following output:

    操作系统

    汇编语言

    论语

    宋词赏析

*/