首页 > 其他分享 >CSharp的Where底层实现

CSharp的Where底层实现

时间:2023-07-03 20:55:56浏览次数:24  
标签:int IEnumerable System result CSharp using Where 底层

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

// 命名空间
namespace pro01
{
    // 类
    internal class Program
    {
        // main 方法
        static async Task Main(string[] args)
        {
            // 定义一个整形的数组
            int[] nums = new int[] { 2, 3, 4, 6, 12, 4 ,13};
            // 取出大于 10 的数
            // ps:Where 是数组的扩展的方法 需要 using 引入
            IEnumerable<int> result = nums.Where(a => a > 10);  // a 是每一项  返回满足条件的所有项【集合】
            foreach (int i in result)
            {
                Console.WriteLine(i);
            }

            // 自己写一个 where 方法
            IEnumerable<int> result1 = MyWhere(nums,a => a > 12);  // a 是每一项  返回满足条件的所有项【集合】
            foreach (int i in result1)
            {
                Console.WriteLine(i);
            }


            Console.ReadLine();
        }
        static IEnumerable<int> MyWhere(IEnumerable<int> items, Func<int, bool> f)
        {
            List<int> result = new List<int>();
            foreach (var i in items )
            {
                // 满足条件的加入 result 集合
                if (f(i) == true) result.Add(i);
            }
            return result;
        }
    }
}

 

标签:int,IEnumerable,System,result,CSharp,using,Where,底层
From: https://www.cnblogs.com/zhulongxu/p/17524006.html

相关文章

  • mysql的update更新及delete删表记录where不带索引字段导致死锁
    为什么会发生这种的事故?InnoDB存储引擎的默认事务隔离级别是「可重复读」,但是在这个隔离级别下,在多个事务并发的时候,会出现幻读的问题,所谓的幻读是指在同一事务下,连续执行两次同样的查询语句,第二次的查询语句可能会返回之前不存在的行。因此InnoDB存储引擎自己实现了行锁,通过......
  • HashMap底层原理
    一、HashMap底层实现原理解析我们常见的有数据结构有三种结构:数组结构;链表结构;哈希表结构。下面我们来看看各自的数据结构的特点:1)数组结构:存储区间连续、内存占用严重、空间复杂度大优点:随机读取和修改效率高,原因是数组是连续的(随机访问性强,查找速度快)缺点:插入和删除数据......
  • HashMap底层原理
    一、HashMap底层实现原理解析我们常见的有数据结构有三种结构:数组结构;链表结构;哈希表结构。下面我们来看看各自的数据结构的特点:1)数组结构:存储区间连续、内存占用严重、空间复杂度大优点:随机读取和修改效率高,原因是数组是连续的(随机访问性强,查找速度快)缺点:插入和删除数据......
  • HashMap底层原理
    一、HashMap底层实现原理解析我们常见的有数据结构有三种结构:数组结构;链表结构;哈希表结构。下面我们来看看各自的数据结构的特点:1)数组结构:存储区间连续、内存占用严重、空间复杂度大优点:随机读取和修改效率高,原因是数组是连续的(随机访问性强,查找速度快)缺点:插入和删除数据......
  • Csharp的CancellationToken 案例
    usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Net.Http;usingSystem.Text;usingSystem.Threading;usingSystem.Threading.Tasks;//命名空间namespacepro01{//类internalclassProgram{//main方法......
  • HashMap底层实现原理解析
    我们常见的有数据结构有三种结构: 数组结构 链表结构 哈希表结构下面我们来看看各自的数据结构的特点:1)数组结构:存储区间连续、内存占用严重、空间复杂度大优点:随机读取和修改效率高,原因是数组是连续的(随机访问性强,查找速度快)缺点:插入和删除数据效率低,因插入数据,这个位置后......
  • 深度理解Iterator底层源码
    publicabstractclassAbstractList<E>extendsAbstractCollection<E>implementsList<E>{//外部操作数:记录添加数据、删除数据的次数(记录元素个数变化的次数) protectedtransientintmodCount=0;//4}这段代码是一个抽象类AbstractList,实现了List接口。下面是对代码......
  • EveryWhereIsSparserThanWhole(Construction)
    [ARC161D]EverywhereisSparserthanWhole(Construction)构造题,重在思路,代码不难。考虑有一个性质,既然部分比整体更稀疏,那么需要每个点的入度都\(>d\),因为这样删去之后\(\div(n-1)\)才会减小。形式化的说,需要满足\[记cnt=\min(度_i(1\lei\len))\\d>\dfrac{nd-cnt}{n......
  • HashMap 的底层原理和源码分析
    tip:作为程序员一定学习编程之道,一定要对代码的编写有追求,不能实现就完事了。我们应该让自己写的代码更加优雅,即使这会费时费力。推荐:体系化学习Java(Java面试专题)文章目录一、HashMap的底层原理二、put方法源码分析三、get方法源码分析四、remove方法源码分析一、HashMap的底......
  • ArrayList 的底层原理和源码分析
    tip:作为程序员一定学习编程之道,一定要对代码的编写有追求,不能实现就完事了。我们应该让自己写的代码更加优雅,即使这会费时费力。推荐:体系化学习Java(Java面试专题)文章目录一、简介二、自动扩容机制三、add方法的源码分析四、addAll方法的源码分析五、set方法的源码分析六、remove方......