A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 祐掱緣 中级黑马   /  2013-10-10 16:55  /  1200 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Six 投影运算
投影是指将对象转换为一种新形式的操作,该形式通常只包含那些将随后使用的属性。通过使用投影,您可以构建依据每个对象生成新的类型。您可以映射属性,并对该属性执行数学函数,还可以在不更改原始对象的情况下映射该对象。
  
方法
  
说明
C#查询语法表达式
更多信息
  
Select
  
映射基于转换函数的值
Select
Enumerable.Select  
  Queryable.Select  
  
SelectMany
  
映射
使用多个from子句
Enumerable.SelectMany  
  Queryable.SelectMany  
Select语法
List<string> words= new List<string>(){ "an", "apple","a", "day"};
            var query = from wordin words
                       select word.Substring(0, 1);
            foreach (string s in query)
               Console.WriteLine(s);
Selectmany语法
List<string>phrases = new List<string>(){ "an apple a day", "the quick brown fox" };
            var query = fromphrase in phrases
                       from word inphrase.Split(' ')
                       select word;
            foreach (string s in query)
               Console.WriteLine(s);
Select()SelectMany()
Select()SelectMany() 的工作都是依据源值生成一个或多个结果值。Select() 为每个源值生成一个结果值。 因此,总体结果是一个与源集合具有相同元素数目的集合。与之相反,SelectMany() 将生成单一总体结果,其中包含来自每个源值的串联子集合。作为参数传递到 SelectMany() 的转换函数必须为每个源值返回一个可枚举值序列。然后,SelectMany() 将串联这些可枚举序列以创建一个大的序列。
下面两个插图演示了这两个方法的操作之间的概念性区别。在每种情况下,假定选择器(转换)函数从每个源值中选择一个由花卉数据组成的数组。
下图描述 Select() 如何返回一个与源集合具有相同元素数目的集合。
file:///C:\Users\hang\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png
下图描述SelectMany() 如何将中间数组序列串联为一个最终结果值,其中包含每个中间数组中的每个值
file:///C:\Users\hang\AppData\Local\Temp\msohtmlclip1\01\clip_image002.png

评分

参与人数 1技术分 +1 收起 理由
追溯客 + 1 你尽量整理在一起~

查看全部评分

1 个回复

倒序浏览
好的嗯额
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马