C# LINQ基础

news2024/12/22 16:29:56

LINQ基础

  • 1. 入门
  • 2. 运算符流语法
    • 2.1 连续使用查询运算符
    • 2.2 使用Lambda表达式
      • 2.2.1 Lambda表达式及Func的方法签名
      • 2.2.2 Lambda表达式和元素类型
      • 2.2.3 自然排序
      • 2.2.4 其他查询运算符
  • 3 查询表达式
  • 4 延迟执行
    • 4.1 重复执行
    • 4.2 捕获的变量
    • 4.3 延迟加载的工作原理
    • 4.4 查询语句的执行方式
  • 5 子查询
  • 6 LINQ构造方式
  • 7 映射策略
  • 8 解释性查询
  • 9 LINQ to SQL 和 EF的区别
  • 10 查询表达式的创建
  • 委托、匿名方法、Lambda表达式
  • 11 自定义一个运算符,了解原理

本篇文章所有内容均来源于书籍《果壳中的C#》,本博客用于复习知识、分享知识使用。

1. 入门

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. 运算符流语法

2.1 连续使用查询运算符

在这里插入图片描述

2.2 使用Lambda表达式

在这里插入图片描述
在这里插入图片描述

2.2.1 Lambda表达式及Func的方法签名

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2.2 Lambda表达式和元素类型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2.3 自然排序

在这里插入图片描述

2.2.4 其他查询运算符

在这里插入图片描述
在这里插入图片描述

3 查询表达式

博主不使用该方式,书籍内的大多数知识直接忽略
在这里插入图片描述
在这里插入图片描述

4 延迟执行

在这里插入图片描述
在这里插入图片描述

4.1 重复执行

在这里插入图片描述
在这里插入图片描述

4.2 捕获的变量

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.3 延迟加载的工作原理

TODO
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

4.4 查询语句的执行方式

在这里插入图片描述
在这里插入图片描述

5 子查询

6 LINQ构造方式

7 映射策略

8 解释性查询

9 LINQ to SQL 和 EF的区别

10 查询表达式的创建

委托、匿名方法、Lambda表达式

委托:指向函数的类型(自定义,Action,Func)
匿名方法:没有方法名的方法(delegate)
lambda表达式:匿名方法可简化为lambda表达式,并且可以推断出类型

11 自定义一个运算符,了解原理

实现查找大于10的所有数

        static void Main(string[] args)
        {
            int[] nums = new int[] { 15,1,5,155,441,56};

            var res = nums.MyWhere(p => p > 20);
            foreach (int i in res) {
                Console.WriteLine(i);
            };

            //查找大于10的所有数
            nums.Where(t => t > 10).ToList().ForEach(Console.WriteLine);

            Console.ReadKey();
        }
        
        public static class MyLinq
	    {
	        public static IEnumerable<T> MyWhere<T>(this IEnumerable<T> t,Func<T,bool> action) {
	            //List<T> list = new List<T>();
	            foreach (var item in t) {
	                if (action(item))
	                {
	                    Console.WriteLine("MyWhere:"+item);
	
	                    //list.Add(item);
	                    yield return item;
	                }
	            }
	            //return list;
	        }}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1500188.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ARM-v7 GCC 环境下的大小端转换实现

1.前言 什么是大小端转换&#xff1f;为什么叫大小端转换&#xff1f; Jonathan Swift的《格列佛游记》中记载&#xff0c;有两国因为剥鸡蛋的方式不同&#xff0c;即一国要求将熟鸡蛋的较大的一端&#xff08;大端&#xff0c;big endian&#xff09;敲碎然后剥壳&#xff0c;…

NLP_文本数据分析_3(代码示例)

目标 了解文本数据分析的作用.掌握常用的几种文本数据分析方法. 一、 文件数据分析介绍 文本数据分析的作用: 文本数据分析能够有效帮助我们理解数据语料, 快速检查出语料可能存在的问题, 并指导之后模型训练过程中一些超参数的选择. 常用的几种文本数据分析方法: 标签数量分…

【嵌入式——QT】Model/View

【嵌入式——QT】Model/View 基本原理数据模型视图组件代理Model/View结构的一些概念QFileSystemModelQStringListModelQStandardItemModel自定义代理 基本原理 GUI应用程序的一个很重要的功能是由用户在界面上编辑和修改数据&#xff0c;典型的如数据库应用程序&#xff0c;数…

leetcode刷题(javaScript)——字典哈希表相关场景题总结

在 JavaScript 刷题中&#xff0c;字典&#xff08;Dictionary&#xff09;和哈希表&#xff08;Hash Table&#xff09;通常用来存储键值对&#xff0c;提供快速的查找、插入和删除操作。它们在很多算法题目中都有广泛的应用&#xff0c;特别是在需要快速查找元素或统计元素出…

Unity插件之天气系统UniStorm

首先呢&#xff0c;它是一款强大的动态昼夜天气系统&#xff0c;能够以较快的帧速率创建AAA级动态生成的天气、照明和天空&#xff0c;并且具有300多个可定制的组件&#xff0c;允许用户创建任何可以想象的环境。 第一步&#xff1a;他需要两个物体Camera摄像机、Player播放器…

用于回归的概率模型

机器学习中的回归方法&#xff1a; 机器学习中的概率模型 机器学习&#xff5c;总结了11种非线性回归模型&#xff08;理论代码可视化&#xff09; 高斯过程回归&#xff1a; Gaussian Processes for Machine Learning GPML——Datasets and Code Gaussian Processes 学…

淘宝商品详情数据丨商品搬家丨商品采集丨商城建站

淘宝商品详情数据、商品搬家、商品采集以及商城建站都是电子商务领域的重要环节&#xff0c;它们共同构成了一个完整的在线销售体系。下面我将分别对这几个概念进行详细的解释。 请求示例&#xff0c;API接口接入Anzexi58 一、淘宝商品详情数据 淘宝商品详情数据指的是在淘宝…

react native封装ScrollView,实现(滑到底部)和(滑到顶部+手指继续向下滑)时拉取新数据

里面的tw是在react native中使用tailwind的第三方库 只求读者把样式看个大概&#xff0c;主要还是功能的实现 ScrollView的官方文档如下 https://reactnative.cn/docs/scrollview import tw from twrnc import { View, Text, ScrollView, RefreshControl } from react-native …

LED显示控制芯片SM5166PF:可消除LED显示屏拖影

在数字化时代的浪潮下&#xff0c;LED显示屏作为信息传播的重要媒介&#xff0c;其显示质量和效果日益受到人们的关注。尤其在商业广告、体育赛事、公共信息发布等领域&#xff0c;高清、流畅、稳定的显示效果显得尤为重要。然而&#xff0c;传统的LED显示屏在刷新率和显示效果…

金智维售前总监屈文浩,将出席“ISIG-RPA超级自动化产业发展峰会”

3月16日&#xff0c;第四届「ISIG中国产业智能大会」将在上海中庚聚龙酒店拉开序幕。本届大会由苏州市金融科技协会指导&#xff0c;企智未来科技&#xff08;RPA中国、AIGC开放社区、LowCode低码时代&#xff09;主办。大会旨在聚合每一位产业成员的力量&#xff0c;深入探索R…

在Linux以命令行方式(静默方式/非图形化方式)安装MATLAB(正版)

1.根据教程&#xff0c;下载windows版本matlab&#xff0c;打开图形化界面&#xff0c;选择linux版本的只下载不安装 2.获取安装文件夹 3.获取许可证 4.安装 &#xff08;1&#xff09;跳过引用文章的2.2章节 &#xff08;2&#xff09;本文的安装文件夹代替引用文章的解压IS…

使用Julia语言及R语言进行格拉布斯检验

在日常的计量检测工作中经常会处理各种数据&#xff0c;在处理数据之前会提前使用格拉布斯准则查看数据中是否存在异常值&#xff0c;如果存在异常值的话应该重新进行计量检测&#xff0c;没有异常值则对数据进行下一步操作。判断异常值常用的格拉布斯方法基于数据来自正态分布…

【leetcode热题】环形链表 II

难度&#xff1a; 中等通过率&#xff1a; 30.1%题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 题目描述 给定一个链表&#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 为了表示给定链表中的环&#xff0c;我们使用整数…

SqlServer 默认值约束示例

创建表&#xff0c;创建时指定 money 字段默认值为0.00&#xff1b; create table t_24 ( account varchar(19) not null, id_card char(18) not null, name varchar(20) not null, money decimal(16,2) default 0.00 not null ); 录入2条记录&#xff0c;money字…

Windows Docker 部署 MySQL

部署 MySQL 打开 Docker Desktop&#xff0c;切换到 Linux 容器。然后在 PowerShell 执行下面命令&#xff0c;即可启动一个 MySQL 服务。这里安装的是 8.3.0 Tag版本&#xff0c;如果需要安装其他或者最新版本&#xff0c;可以到 Docker Hub 进行查找。 docker run -itd --n…

在微信小程序里的ecahrts图表,tooltip中内容有黑色阴影的问题

tooltip并没有设置文字阴影相关配置&#xff0c;但是实际真机测试出来有黑色阴影&#xff08;本地编译器没有阴影&#xff09;&#xff0c; 经过研究发现&#xff0c;需要在tooltip中加上以下配置就OK了 tooltip: {// .....textStyle:{textShadowColor:transparent,//文字块背景…

go|一道算法题引发的思考|slice底层剖析

文章目录 引发思考的一道算法题slicemake初始化切片扩容原理切片截取原理切片复制原理算法题的正解 补充string和[]byte互转string 与[]byte相互转换 引发思考的一道算法题 链接&#xff1a;组合 给定两个整数 n 和 k&#xff0c;返回 1 … n 中所有可能的 k 个数的组合。 大致…

处理error: remote origin already exists.及其Gitee文件上传保姆级教程

解决error: remote origin already exists.&#xff1a; 删除远程 Git 仓库 git remote rm origin 再添加远程 Git 仓库 git remote add origin &#xff08;HTTPS&#xff09; 比如这样&#xff1a; 然后再push过去就ok了 好多人可能还是不熟悉怎么将文件上传 Gitee:我…

Unity零基础到进阶 | Unity中 屏蔽指定UI点击事件 的多种方法整理

Unity零基础到进阶 | Unity中 屏蔽指定UI点击事件 的多种方法整理一、Unity中 屏蔽透明区域的点击事件1.1 使用Image组件自带的参数检测1.2 根据点击的坐标计算该点的像素值是否满足阈值 二、Unity中屏蔽 不规则图片按钮点击的事件 总结 &#x1f3ac; 博客主页&#xff1a;htt…

LInux-多线程基础概念

文章目录 前言预备页表详解缺页中断页表的映射 一、多线程是什么&#xff1f;轻量级进程 二、Pthread库pthread_create 前言 从本章的多线程开始&#xff0c;我们开始进入Linux系统的尾声&#xff0c;所以&#xff0c;在学习多线程的过程中&#xff0c;我们也会逐步对之前的内…