当前位置: 首页 > news >正文

不同类型网站优化十堰网站建设哪家好

不同类型网站优化,十堰网站建设哪家好,门户网站建设文案,百度推广登录首页网址微信公众号#xff1a;趣编程ACE关注可了解更多的.NET日常实战开发技巧#xff0c;如需源码 后台回复 源码 即可;如果觉得对你有帮助#xff0c;欢迎关注C# Linq中 Select SelectMany 使用技巧Select 和 SelectMany 是我们开发中对集合常用的两个扩展方法#x…微信公众号趣编程ACE关注可了解更多的.NET日常实战开发技巧如需源码 后台回复 源码 即可;如果觉得对你有帮助欢迎关注C# Linq中 Select SelectMany 使用技巧Select 和 SelectMany 是我们开发中对集合常用的两个扩展方法今天我就用几个小例子并结合源码形式展示下这两个方法的使用形式。前文回顾【温故知新】C# Linq中 Where使用技巧Select 的基本使用首先我创建一个Student的类类的结构如下1   public class Student2    {3        public int Id { get; set; }  // 学生ID4        public string Name { get; set; } // 学生姓名5        public Liststring Programing { get; set; } // 学生掌握的 编程语言678        // 获取学生集合9        public static ListStudent GetStudents() 10        { 11            return new ListStudent() 12            { 13                new Student 14                {  15                    Id  1,  16                    Name 张三, 17                    Programing  new Liststring 18                    { 19                        C#,Java,JS 20                    } 21                }, 22                new Student 23                { 24                    Id2, 25                    Name 李四, 26                    Programingnew Liststring 27                    { 28                        C,C,Node.js 29                    } 30                }, 31                 new Student 32                { 33                    Id3, 34                    Name 王五, 35                    Programingnew Liststring 36                    { 37                        Sql,C,Node.js 38                    } 39                }, 40                new Student 41                { 42                    Id4, 43                    Name 赵六, 44                    Programingnew Liststring 45                    { 46                        MVC,C,Node.js 47                    } 48                }, 49            }; 50        } 51 52    }然后在Main函数中调用GetStudents方法并对集合使用Select方法1// 因为Id是int 类型 将集合里面所有子项的Id组合起来 变成一个新集合 2// 所以返回值是 IEnumerableint 类型 3IEnumerableint ids  Student.GetStudents().Select(s  s.Id);   4foreach (var item in ids) 5{ 6  Console.WriteLine(item); // 输出 1,2,3,4 7}那么对于这个Select方法內部源码是怎么实现的呢1// F12 进入查看源码结构 2// 返回值是 IEnumerableTResult 类型 3// 是所有 IEnumerableTSource source 类型的扩展方法 4// 一个入参 FuncTSource, TResult selector 的内置委托 其中 委托入参是TSource 类型返回值是TResult类型 5public static IEnumerableTResult SelectTSource, TResult(this IEnumerableTSource source, FuncTSource, TResult selector)手写Select源码实现:1public static IEnumerableTResult SelectExtensionTSource, TResult(this IEnumerableTSource source, FuncTSource, TResult selector)2{3  if(source  null) throw new ArgumentNullException(source);4  if(selector  null) throw new ArgumentNullException(selector);56  foreach (var item in source)7  {8    yield return selector(item);9  } 10}SelectMany 的基本使用1.在上文定义的Student类中我们要拿到所有人会的编程语言那么就可以通过SelectMany实现。1var stus  Student.GetStudents().SelectMany(s  s.Programing); 2foreach (var item in stus) 3{ 4   Console.WriteLine(item); 5}那么这个方法中SelectMany的作用是什么呢SelectMany 将序列(也就是Student的集合)的每个元素投影到IEnumerable上这样就将其转化为一个IEnumerable类型的数据。也就是说SelectMany 这个方法将一系列结果组合在一起变成一个新的结果。以下便是SelectMany的一个重载源码实现:1// 返回值是 IEnumerableTResult 类型2// 是所有 IEnumerableTSource source 类型的扩展方法3// 一个入参 FuncTSource, IEnumerableTResult selector 类型的内置委托 4// 其中委托函数需要一个Tsource类型的参数返回值是IEnumerableTResult 类型5public static IEnumerableTResult SelectManyExtensionTSource, TResult(this IEnumerableTSource source, FuncTSource, IEnumerableTResult selector)6{7  if(source  null) throw new ArgumentNullException(source);8  if(selector  null) throw new ArgumentNullException(selector);9   return SelectManyExtensionIterator(source, selector); 10} 11//SelectManyExtensionIterator 迭代实现 12static IEnumerableTResult SelectManyExtensionIteratorTSource, TResult(IEnumerableTSource source, 13FuncTSource, IEnumerableTResult selector) 14{ 15   foreach (var item in source) 16    { 17      foreach (var result in selector(item)) 18       { 19         yield return result; 20       } 21    } 22}2.要拿到每个学生姓名及其所会的编程语言这就可以通过SelectMany方法的另一种重载来实现1// 其中SelectMany 第一入参是一个内置委托2  //入参为集合的元素类型返回值是元素的一个集合类型Student3// 第二个参数也是一个内置委托: 4  //入参有两个第一个为集合元素类型(Student),第二个为前面参数返回值的元素类型5  // 其中这个内置委托的返回值是一个TResult 类型此处代码TResult 为new 出来的匿名类型6var stuInfo  Student.GetStudents().SelectMany(s  s.Programing,7                (stu, str)  new8                {9                    StudentName  stu.Name, 10                    PragramName  str 11                }); 12foreach (var item in stuInfo) 13{ 14  Console.WriteLine(item.StudentNameitem.PragramName); 15}那么这个SelectMany的重载源代码是怎么实现的呢1public static IEnumerableTResult SelectManyExtension2TSource, TCollection, TResult(this IEnumerableTSource source, 2            FuncTSource, IEnumerableTCollection collectionSelector, 3            FuncTSource, TCollection, TResult resultSelector)4        {5            if(sourcenull) throw new ArgumentNullException(source);6            if(collectionSelector  null) throw new ArgumentNullException(collectionSelector);7            if(resultSelector  null) throw new ArgumentNullException(resultSelector);89            return SelectManyExtensionIterator2TSource, TCollection, TResult(source, collectionSelector, resultSelector); 10        } 11 12 13        static IEnumerableTResult SelectManyExtensionIterator2TSource, TCollection, TResult (IEnumerableTSource source, 14            FuncTSource, IEnumerableTCollection collectionSelector, 15            FuncTSource, TCollection, TResult resultSelector) 16        { 17            foreach (var item in source) 18            { 19                foreach (var collection in collectionSelector(item)) 20                { 21                    yield return resultSelector(item, collection); 22                } 23            } 24        }具体演示看上文视频~
http://www.zqtcl.cn/news/609499/

相关文章:

  • 丽水网站建设公司广州网络公司
  • 做基金的网站哪个好针对大学生推广引流
  • 国外对旅游网站的建设互联网推广和互联网营销
  • 海南省建设厅网站首页有什么做设计的兼职网站
  • 网站导航功能苏州市高新区建设局网站
  • jsp网站 值班多语种网站开发
  • 公司网站英文做电商
  • 合肥企业网站建设公司哪家好卖产品怎么做网站
  • 网站建设公司86215中国中小企业网站
  • 做网站 如何 挣钱游戏网站开发协议
  • 网站建设发展wordpress比较慢
  • 收费网站推广动漫制作就业方向
  • 湖北优化网站建设设计公司需要什么资质
  • 个人网站怎么制作wordpress创意小工具
  • 网站管理维护怎么做在线oa
  • vue做企业网站wordpress 不发送邮件
  • 深圳做网站哪家便宜邮政编码html编写
  • 黑龙江营商环境建设局网站门户网站整改报告
  • 是不是做推广都得有网站深圳网站建设新闻
  • 旅游做视频网站关于建设网站的书本
  • 营销网站是什么意思快站优惠券app
  • wordpress加dz公司网站搜索优化
  • 北京网站seo技术厂家联合外发加工网
  • 自己做的网站 jen江门模板建站定制
  • 教做糕点的网站工作计划范文
  • dw自己做网站需要什么黄骅贴吧足疗
  • 稻香村网站建设网站建设制作 优帮云
  • 简单的网站作业seo关键词搜索和优化
  • 个人域名备案网站名称例子龙岩网站制作公司
  • 深圳专门做网站的公司电子商务网站推广目的分为