Tag: C#
All the articles with the tag "C#".
-
.NET 6 到 .NET 10:LINQ 新增的 15 个方法,一文搞清楚
Published: at 11:54 PM从 .NET 6 到 .NET 10,LINQ 陆续增加了 15 个方法——Chunk、MinBy、CountBy、AggregateBy、Index、LeftJoin 等,这篇文章逐一介绍它们解决了什么问题,以及如何在实际代码中替换掉过去的样板写法。
-
C# LINQ 聚合操作全解:Count、Sum、Min、Max、Average 与 Aggregate
Published: at 05:25 AMLINQ 聚合操作覆盖从计数、求和到自定义折叠的完整场景。本文结合 Order/Product/SalesData 领域模型,演示所有聚合操作符的用法,重点解析 Count vs Any 性能陷阱、.NET 6 新增的 MinBy/MaxBy 如何单次遍历直接拿到元素,以及 Aggregate 如何在一次遍历中同时计算多个统计值。
-
C# LINQ 集合操作全解:Distinct、Union、Intersect、Except 与 .NET 6 的 *By 变体
Published: at 05:12 AMLINQ 的八个集合操作方法让去重、合并、取交集、取差集变得简洁可读。本文结合 Product/Employee 领域模型,完整演示四个经典操作及 .NET 6 新增的 DistinctBy、UnionBy、IntersectBy、ExceptBy,重点对比新旧写法差异,帮你彻底告别 IEqualityComparer 样板代码。
-
.NET 11 Process API 全面升级:一行代码告别死锁,苹果 Silicon 快 98 倍
Published: at 02:00 AM.NET 11 对 System.Diagnostics.Process 进行多年来最大的一次更新,新增一行代码捕获进程输出的高层 API,彻底解决管道死锁问题,同时带来句柄继承控制、进程生命周期管理、NativeAOT 体积缩减以及最高 98 倍的性能提升。
-
用 ReadOnlySpan<byte> 替掉 byte[]:零分配技巧,.NET Framework 也能用
Published: at 01:40 AMAndrew Lock 介绍了一个编译器级别的优化:把 static readonly byte[] 字段改为 static ReadOnlySpan<byte> 属性,编译器会把数据直接嵌入 PE 程序集的 metadata,彻底消除堆分配。这是编译器特性,与运行时无关,.NET Framework 配合 System.Memory 包同样受益。文章还详细说明了三个必须满足的前提,以及哪些写法会意外触发分配的坑。
-
C# 外观模式实战:用一个订单处理系统讲清楚完整实现
Published: at 11:56 PM外观模式的经典教程总爱拿「家庭影院遥控器」举例,实际开发中遇到的是支付、库存、通知三个子系统同时协调。本文从真实电商下单场景出发,完整实现 OrderFacade,覆盖设计、单元测试和依赖注入注册,一次讲清楚。
-
什么是不变量,为什么领域模型是执行它们的最佳场所
Published: at 09:20 AM本文解释了领域驱动设计中「不变量」的概念,分析了贫血模型散乱执行规则的问题,并通过私有构造器、封装状态转换和聚合根三个策略,展示如何构建始终有效的领域模型,让业务规则真正内聚在对象本身。
-
.NET AI 核心构建块:Microsoft.Extensions.AI 详解
Published: at 12:20 AM微软发布了面向 .NET 开发者的 AI 基础构建块系列,本文聚焦第一块:Microsoft.Extensions.AI(MEAI)。它提供统一的 LLM 访问接口,支持 OpenAI、OllamaSharp、Azure OpenAI 等多家提供商,并内置结构化输出、中间件、多模态内容等能力,是构建 .NET 智能应用的基础。