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;

csharp 复制代码
 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();
     }

   
 }

IEnumerable 对应的 扩展方法

where

select

Max

Min

OrderBy

First : 获取第一个,如果一个都没有,则抛出异常

FirstOrDefault : 获取第一个,如果一个都没有则返回默认值(如果是值类型,默认值0 如果是引用类型 则默认值 null)

Singe : 获取唯一一个,如果没有或者有多个,则抛出异常

SingeOrDefault : 获取唯一一个,如果没有则返回默认值,如果有多个,则抛出异常

相关推荐
我是唐青枫9 小时前
C#.NET 范围与索引(Range、Index)完全解析:语法、用法与最佳实践
c#·.net
深海潜水员11 小时前
【MonoGame游戏开发】| 牧场物语实现 第一卷 : 农场基础实现 (下)
vscode·游戏·c#·.net·monogame
时光追逐者1 天前
Visual Studio 2026 现已正式发布,更快、更智能!
ide·c#·.net·visual studio
用户7227868123442 天前
.NET 实现雪花算法:高效生成分布式唯一 ID
.net
玩泥巴的2 天前
.NET 8+ 飞书API实战:自动化群组管理与消息推送
c#·.net·二次开发·飞书
唐青枫3 天前
C#.NET 范围与索引(Range、Index)完全解析:语法、用法与最佳实践
c#·.net
许泽宇的技术分享3 天前
当AI Agent遇上.NET:微软Agent Framework的架构奥秘与实战启示
人工智能·microsoft·.net
SEO-狼术3 天前
DevExpress DXperience Crack
.net
我是唐青枫3 天前
一文理解 C#.NET Tuples:从基础到高级应用
c#·.net
缺点内向3 天前
C# 中 Word 文档目录的插入与删除指南
开发语言·c#·word·.net