news 2026/5/30 14:26:20

一周总结

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一周总结

LINQ 与 Lambda 表达式(C# 的“魔法”)

比较高级的 C# 特性:

  • Distinct():一行代码去重。

  • OrderByDescending():一行代码排序。逆序正序是orderby。

  • pair => pair.Value:理解了 Lambda 表达式其实就是一个“临时的筛选/排序规则”,告诉程序“我要按什么属性来操作”。这是在orderby方法中写来进行筛选。

Dictionary(字典)的核心威力

1.字典比列表(List)更强大的地方:查找速度快

这是源于他的特殊结构(数组加链表的特殊结构)

具体为两个数组,一个为查找,一个为存储

在数据数组中最小的单元是结构体,包含:

int hashCode缓存的哈希值。这是为了性能,下次扩容搬家时,直接拿这个值去算新位置,不用重新对 Key 进行复杂的哈希计算。

int next链表的“指针”。如果发生哈希冲突(撞车),这个值会指向同在这个桶里的“上一个”数据的下标。如果没有下一个,就是 -1。

TKey key:你存的键。

TValue value:你存的值。

在查找数组中存储着数据数组,数据数组在查找数组的下标是他的映射

字典会把键使用GetHashCode()转化为哈希值并除以查找数组的长度计算出一个数,这个数作为数据数组的下标,如果这个下标没有数组就存储,有的话就会用到链表,这时候上述next就会发挥作用。

查找数组也就是字典的长度在字典new出来时是0,因为他是懒加载,第一次插入add的时候扩容为3,往后会扩容为至少是当前容量 2 倍的最小质数。

2.不再需要遍历:以前找个商品要用foreach循环整个列表,现在直接用cart.ContainsKey("商品名")就能判断是否存在,效率极高。

3.直接拿数据:使用cart["商品名"]就能直接获取或修改对应的价格和数量,像查字典一样精准。

在使用泛型类使用<T>的时候遇到比较问题

在方法传入T a,T b想要进行比较传统使用< ,>会编译不通过,

方法1

可以使用compareto方法,但使用时必须继承IComparable接口

compareto具体可以比较

  • 数字类int,double,float,long,byte等(比大小)。

  • 文本类string,char(比字典顺序)。

  • 时间类DateTime(比早晚)。

  • 布尔类boolfalse小于true,虽然很少这么比)。

方法2

可以使用 dynamic来修饰需要比较的量

编译不会管dynamic类型会直接通过在出错时中断程序

文件操作中遇到的问题

在使用copy时需要的参数时需要文件名字的不是指定位置

比如我想把文件1.txt复制到d:\23文件夹需要的参数时d:\23\1.txt,这时用到提取文件名字方法Path.GetFileName()和拼接方法Path.Combine("D:\\", "文件名.txt")

遇到"The process cannot access the file... because it is being used by another process"时,明白了这是因为文件被锁住了

具体为在调用d盘的时候出错好像源路径是默认打开的

通配符概念 (Wildcards)

*.*的含义:明白了*代表任意字符。

  • *.*= 任意文件名 + 任意后缀(即所有文件)。

  • *.txt= 任意文件名 + txt 后缀(即仅 txt 文件)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/29 18:01:39

如何三步完成自动化工具配置:从零开始搭建推送通知系统

如何三步完成自动化工具配置&#xff1a;从零开始搭建推送通知系统 【免费下载链接】quark-auto-save 夸克网盘签到、自动转存、命名整理、发推送提醒和刷新媒体库一条龙 项目地址: https://gitcode.com/gh_mirrors/qu/quark-auto-save 你是否曾经为每天重复的手动操作而…

作者头像 李华
网站建设 2026/5/29 17:48:52

ComfyUI批量生成技巧:高效产出AI图像的秘诀

ComfyUI批量生成技巧&#xff1a;高效产出AI图像的秘诀 在AI图像生成领域&#xff0c;很多人还停留在“输入提示词、点击生成”的初级阶段。但当你需要为一个品牌设计上百张风格统一的广告图&#xff0c;或是为游戏项目快速产出角色概念草稿时&#xff0c;这种手动操作显然无法…

作者头像 李华
网站建设 2026/5/29 3:16:49

BaiduPCS-Go:告别图形界面,拥抱命令行网盘管理新时代

还在为百度网盘繁琐的网页操作而烦恼吗&#xff1f;想要更高效地管理云端文件吗&#xff1f;今天我要向你介绍一款革命性的工具——BaiduPCS-Go。这款仿Linux shell命令行的百度网盘客户端&#xff0c;将彻底改变你对网盘管理的认知&#xff0c;让你体验到命令行操作带来的极致…

作者头像 李华
网站建设 2026/5/29 20:25:34

14、Apache服务器配置与高级网络概念解析

Apache服务器配置与高级网络概念解析 1. Apache模块添加 Apache本身功能强大,但有些功能需要通过添加模块来实现,例如安装php5模块以支持PHP,或者Python模块用于Python开发。在不同的Linux发行版中,添加模块的方式有所不同。 1.1 Debian系统 在Debian系统中,有专门的命…

作者头像 李华
网站建设 2026/5/29 20:54:20

基于LobeChat的大模型Token优化使用策略

基于LobeChat的大模型Token优化使用策略 在大语言模型&#xff08;LLM&#xff09;逐渐走入企业生产系统和开发者日常工具链的今天&#xff0c;一个现实问题日益凸显&#xff1a;如何在保证功能与体验的前提下&#xff0c;控制不断攀升的API调用成本&#xff1f;尤其当对话系统…

作者头像 李华