当前位置:   article > 正文

net lambda 、 匿名函数 以及集合(实现IEnumerable的 如数组 、list等)

net lambda 、 匿名函数 以及集合(实现IEnumerable的 如数组 、list等)

匿名函数:》》》
Action a1 = delegate(int i) { Console.WriteLine(i); };
Lambda:>>>
Aciont a1= (int i) => { Console.WriteLine(i); };
可以简写 (编译器会自动根据委托类型 推断)
Action a1 = (i)=> { Console.WriteLine(i); };
还可以简写 如果只有一个参数,可以把括号省略
Action a1 = i=> { Console.WriteLine(i); };

如果委托有返回值,并且方法体只有一个行代码,且这行代码还是返回值, 则可以 省略 大括号 和 return
Func f1 => () => { return 5;};
可以简写》》》》
Func f1 => () => 5;

在这里插入图片描述

 static class Zen
 {

     public static IEnumerable<T> myWhere<T>(this IEnumerable<T> datas, Func<T, bool> func) {
         List<T> resultList = new List<T>();
         foreach (T  item in datas) 
         { 
             if (func(item))
                 resultList.Add(item);
         }
         return resultList;
     }
 }
 class Program
 {
    
    
     static void Main(string[] args)
     {

         int[] nums = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };

         //nums  数组中是3的倍数 提取出来
         IEnumerable<int> lt = nums.myWhere<int>((t) =>
         {
             if (t % 3 == 0)
                 return true;
             return false;
         });
         foreach (int i in lt) 
         {
             Console.WriteLine($"结果:{i}");
         }
         Console.ReadKey();
     }

   
 }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

在这里插入图片描述
IEnumerable 对应的 扩展方法

where
select
Max
Min
OrderBy

First : 获取第一个,如果一个都没有,则抛出异常
FirstOrDefault : 获取第一个,如果一个都没有则返回默认值(如果是值类型,默认值0 如果是引用类型 则默认值 null)
Singe : 获取唯一一个,如果没有或者有多个,则抛出异常
SingeOrDefault : 获取唯一一个,如果没有则返回默认值,如果有多个,则抛出异常

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/525136
推荐阅读
相关标签
  

闽ICP备14008679号