IEnumerable.Select和SelectMany的区别
2016-07-21 20:17
351 查看
例子(一个人可以有多个手机)
总结
1、SELECT是把操作源的指定元素放到一个新的集合中
2、SELECTMANY的操作可以看做是两步,第一步与SELECT差不多(生成多个List<Phone>),第二步IEnumerable的元素合并成一个(将List<List<Phone>>合并成新的、大的List<Phone>)
public class People { public string Name { get; set; } public List<Phone> Phone { get; set; } } public class Phone { public string Number { get; set; } public string color { get; set; } } public class Test { public void SelectTest() { var peopleList=new List<People>(); var phoneList=peopleList.Select(p => p.Phone);//返回值可以近似的看成List<List<Phone>> var nameList = peopleList.Select(p => p.Name);//返回值可以近似的看成List<string> } public void SelectManyTest() { var peopleList = new List<People>(); var phoneList = peopleList.SelectMany(p => p.Phone);//返回值可以近似的看成List<Phone> } }
总结
1、SELECT是把操作源的指定元素放到一个新的集合中
2、SELECTMANY的操作可以看做是两步,第一步与SELECT差不多(生成多个List<Phone>),第二步IEnumerable的元素合并成一个(将List<List<Phone>>合并成新的、大的List<Phone>)
相关文章推荐
- New Year and Days
- RabbitMQ 安装操作
- 【linux】ubantu下Apache无法启动(80端口被占用)
- 广播初学笔记
- 【其他学习】聊一聊 cookie,做大项目必懂的知识点
- HDU 1051 Wooden Sticks 木棍 贪心
- 操作系统知识点
- 漫步微积分九——乘法和除法法则
- js与jquery的选项卡切换
- 链队列java实现
- 抓取数据同步备份hive
- Centos7中lvm缩容后导致无法挂载
- 【CodeForces】599A - Patrick and Shopping(枚举)
- ARC所有权修饰符--__weak修饰符
- 阿里音乐流行趋势预测大赛-赛后思路整理
- Hdu oj 1013 Digital Roots(九余数定理)
- 设计模式之状态模式——随遇而安
- 第八讲:I/O虚拟化
- matlab 画图中线型及颜色设置
- 小软件推荐 - PPT遥控器