.Net6.0系列-7 .Net 6LinQ(三)常用扩展方法

2023-05-16

一.投影:把集合中的每一项转换为另一种类型使用的是Select()方法
where()的返回集合是Enumerable,返回的是T的全部字段,而Select是可以返回集合的任意需要的字段
find()是在lamada表达式中的使用,以上两个是LinQ的使用

匿名类型的使用情形,在传递多个参数的时候可以使用匿名类型

匿名类型与Select()可以映射出新的集合
二 集合转换
可以使用ToArray()方法和ToList()方法分别把IEnumerable转换为数组类型和List类型

三 链式编程:多条件一起查询

四 LinQ使用建议:当需要计算大量数据,并需要瞬间完成的时候不建议使用LinQ,如图形处理图片中的每一个像素点的时候,需要瞬间完成,并将图片瞬间显示出来可以使用三元运算符/或者Math/或者自己使用基础算法写

class Employee
{
	public int id{get;set;}
	public string Name{get;set;}
	public int Age{get;set;}
	public override string ToString()
	{
		return $"id={id},Name={Name},Age={Age}";	
	}
}
static void main(string[] args)
{
	//匿名类型
	var obj=new {Name="abc",age=12,Sex="男"};
	List<Employe> list=new List<Employe>();
		
	list.Add(new Employee{id=1,Name="1",Age=1,Salary=10});
	list.Add(new Employee{id=2,Name="2",Age=2,Salary=20});
	list.Add(new Employee{id=3,Name="3",Age=3,Salary=30});
	//取出集合中的所有Name
	IEnumerable<string> Iitems=list.select(t=>t.Name);	
	
	//匿名类型var与select()使用新生成
	var items=list.Select(e=>new {MingCheng=e.Name,DaXiao=e.Age>=2?"老":"幼"});
	//分清哪个用e哪个用g
	var items1=list.GroupBy(e=>e.Age).Select(g=>new {Nianling=g.Key,MaxS=g.Max(e=>e.Salary),MinS=g.Min(e.Salary),RenShu=g.Count()});
	//ToArray()方法和ToList()方法
	List<Employee> listEmployee=list.ToList();
	Employee[] ArrEmployee=list.ToArray();
	//链式编程范例
	var itemsLS=list.Where(e=>e.id>=1).GroupBy(e=>e.Age).OrderBy(g=>g.Key).Takes(3).Select(g=>new{NianLing=g.Key,RenShu=g.Count(),PingJunGongZi=g.Average(e=>e.Salary)});
	//统计字符串中每个字符出现的次数,并依据频率排序,出现次数大于两次的集合
	string s="ni hao!wo xi huan bian dai ma";
	var items=s.Where(c=>char.IsLetter(c)).Select(c=>Char.ToLower(c)).GroupBy(c=>c).Select(g=>new{g.Key,Count=g.Count()}).OrderByDescending(g=>g.Count).Where(g=>g.Count>2);
	}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.Net6.0系列-7 .Net 6LinQ(三)常用扩展方法 的相关文章

随机推荐

  • Python模拟SSH登录字符图形菜单

    本文说明如何使用Python模拟SSH登录字符图形菜单 xff08 不知道这种菜单叫啥名字 xff0c 姑且这么叫 xff09 xff0c 并选择相应的菜单项进行操作 以下图为例 xff0c 在SSH成功登录后 xff0c 选择第7行的改密
  • 安全产品,如何从idea到可落地实现

    安全产品 xff0c 如何从idea到可落地实现 前言Step1 xff1a 用一句话描述产品要解决的问题 xff08 What xff09 Step2 xff1a 给出用户故事 xff08 Why xff09 Step3 xff1a 分析
  • LDAP认证

    注 xff1a 本文由网络公开资料整理而来 xff0c 如有错误 xff0c 欢迎指正 LDAP xff08 Lightweight Directory Access Protocol xff09 是目录服务 xff08 DAP xff09
  • 计算机博弈大赛参赛程序算法总结

    背景 前两年的全国计算机博弈大赛的爱恩斯坦棋棋种赛我都有参加 14年采用的是极大极小算法 xff0c 那个时候还不太懂搜索算法的优化 xff0c 所以算法就是最原始的极大极小搜索 xff0c 没有做任何剪枝 15年我在上一年的算法基础上加入
  • 常见硬件通信协议总结

    xff08 正好手上的nodemcu支持UART SPI I2C协议 xff0c 所以这篇文章干脆就用nodemcu来分析协议了 xff09 UART 用逻辑分析仪捕捉nodemcu init lua给上位机发送 A xff1a span
  • 我们都被监控了?揭秘全球电信网络7号信令(SS7)漏洞

    From xff1a https www ithome com html it 278270 htm 最近 xff0c 一篇报道 黑客可以通过电话号码监控你的一举一动 xff0c 里面描述因为全球电信网络7号信令 xff08 SS7 xff
  • 使用route add添加路由,使两个网卡同时访问内外网

    route add命令格式 xff1a route f p Command Destination mask Netmask Gateway metric Metric if Interface 通过配置电脑的静态路由来实现同时访问内外网的
  • 手机自动访问generate_204

    近来写WiFi钓鱼demo xff0c 需要让手机连接 WiFi 后自动跳转到指定网页 xff0c 于是对手机进行dns拦截 在对手机的流量分析中发现一件很神奇的事 xff0c 手机接入WiFi后会自动访问 generate 204 以下是
  • MT7621方案 LED 灯控制 (基于OpenWrt平台)

    注 xff1a 出处不明 xff0c 最开始是在这里看到的 xff0c 图竟然没有 没有 相关资料也几乎木有 datasheet里也没有寄存器配置说明 MT7621还真是坑爹啊 xff01 目前市面上大部分路由器方案是基于MT7620的 x
  • ROS分布式通信,Jetson Nano 与PC机通信

    Jetson Nano 与PC机通信 1 环境2 SSH安装3 修改hosts文件4 修改环境变量文件 xff5e bashrc5 测试 1 环境 PC笔记本 xff1a Ubuntu 18 04 5 LTS Jetson Nano Ubu
  • .Net6.0系列-6 .Net 6LinQ(二)常用扩展方法

    一 本节学习LinQ的扩展方法 LinQ的where返回的IEnumerable 所有的括号中都可以写lamada表达式 list 数组等都可以用LinQ 以下这些方法都是可以和Where一起使用的 Count 返回的是满足条件的个数 An
  • postman简单上手教程

    1 xff1a postman浏览器已经停止更新了 xff0c 所以下面介绍的是app版本 2 xff1a 打开postman xff0c 创建自己的测试目录 xff0c 点加号创建 xff0c 这里我创建了test project 3 x
  • 实战microPython(06)-OLED屏的使用(2)

    实战microPython 06 OLED屏的使用 2 David Zou 2018 11 27 大家好 xff0c 上次介绍了OLED显示屏的相关知识 xff0c 今天 xff0c 我们进入实战 xff0c 学习如何使用OLED显示屏 如
  • C++实现HTTP上传

    插件中需要一个上传文件的功能 xff0c 我跟老大说 xff0c 我想FTP上传 xff0c 老大一瞪眼 xff0c 那还得再布个FTP服务器 xff0c 直接用HTTP上传多简单 那么C 43 43 如何将文件上传HTTP服务器上呢 xf
  • RTK和GPS定位

    首先 xff0c 简要说一下GPS和RTK的工作原理 GPS定位的基本原理是 xff0c 测量出已知位置的卫星到地面GPS接收器之间的距离 xff0c 然后接收器通过与至少4颗卫星通讯 xff0c 计算与这些卫星间的距离 xff0c 就能确
  • 基于VC6的UAV地面站(GCS)程序及源代码

    此地面站 xff08 GCS603 xff09 是早年针对北航一款小飞控开发的 xff0c 那个时候APM好像都才刚刚问世 程序具备了简单地面站的基本功能 xff0c 如界面绘制 串口数据读写 数据记录 数据帧的合成与解析 航线设置等 此程
  • ArduPlane plane 部分功能与代码移植到 GCC(Atmel studio 6.2)版本的程序源代码 HelloPilot

    几年前由于当时 ArduPlane xff08 Ver2 76 xff09 的开发环境为arduino ide 开发尤其是调试环境非常不友好 xff0c 要进行程序调试及跟踪非常不方便 xff0c 同时出于学习掌握arduplane代码原理
  • 简单的说说飞控硬件研发过程中的各种坑

    我们的飞控 xff0c 从当初第一个概念设计到现在 xff0c 历时好几年 xff0c 目前经过上百架次的试飞 xff0c 功能已经基本完备 回首前面走过的历程 xff0c 不说尸横遍野吧 xff0c 至少也是血泪斑斑 有无数的坑需要投入大
  • 1、无人系统控制站软件开发平台 CSS(Control Station Studio)概述

    1 初衷 在CSS之前 xff0c 通过参与开发数个大中型无人机地面控制站项目 xff0c 在GCS xff08 Ground Control Station xff09 设计与实现方面积累了一些经验和感悟 在先前的开发过程中 xff0c
  • .Net6.0系列-7 .Net 6LinQ(三)常用扩展方法

    一 投影 把集合中的每一项转换为另一种类型使用的是Select 方法 where 的返回集合是Enumerable 返回的是T的全部字段 而Select是可以返回集合的任意需要的字段 find 是在lamada表达式中的使用 以上两个是Li