自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 C# Winform控件之DataGridView

DataGridView是WinForms中用于显示和编辑表格数据的核心控件,支持数据绑定、排序、筛选等操作。它能够可视化多种数据源(如DataTable、List<T>),并允许高度自定义列类型和样式。核心功能包括数据绑定(通过DataSource属性)、交互操作(编辑、选择)以及丰富的事件处理(如CellClick、CellValueChanged)。开发者可通过属性调整外观和行为,如设置只读模式、选择整行等,并利用方法进行动态刷新、添加/删除行列等操作,适用于数据管理和报表展示场景。

2025-08-09 15:40:03 1402

原创 C# Winform控件之RichTextBox

摘要:RichTextBox 是 WinForms 中的高级富文本控件,支持字体、颜色、段落等复杂格式及图片嵌入、超链接功能。相比 TextBox,它突破 64K 字符限制,适合大文本处理。主要特性包括:支持 RTF 格式读写(Rtf/SelectedRtf 属性)、多样化格式设置(SelectionFont/SelectionColor)、灵活文本操作(AppendText/Undo)和文件加载保存(LoadFile/SaveFile)。典型应用场景包括文档编辑器、带格式日志显示等,通过选区控制(Sele

2025-08-08 20:49:59 1500

转载 你以为自己的 C# 代码很快?再好好想想

C#代码性能优化的10个常见陷阱:这篇文章揭示了10种容易被忽视但严重影响性能的C#编码模式,包括过度使用.ToList()强制立即枚举、不当使用async void导致错误处理失效、值类型装箱带来GC压力、字符串拼接导致内存分配等问题。文章通过代码对比展示了优化方案,强调延迟执行、Span/Memory使用、ValueTask替代Task、对象池化和批处理等最佳实践,并引用微软官方文档作为依据。这些优化能显著提升应用性能,降低云服务成本,并减少GC压力。

2025-08-08 11:21:40 87

原创 C#Linq查询(十一):并行 LINQ(PLINQ)

PLINQ是LINQ的并行扩展,通过自动多线程处理提升数据计算效率。核心方法包括:AsParallel()启用并行、WithDegreeOfParallelism控制线程数、WithExecutionMode强制并行、ForAll并行无返回操作等。适用场景为大数据量、计算密集型且无共享状态的任务,但需注意:小数据量可能更慢,避免共享资源竞争,顺序依赖会降低性能。使用前应进行性能测试,合理控制线程数,减少顺序约束,才能充分发挥多核CPU优势。PLINQ简化了并行编程,但需根据场景谨慎使用。

2025-08-06 19:20:11 826

原创 C#Linq查询(十):排序(纯干货)

本文介绍了LINQ中的排序操作,主要涵盖OrderBy/OrderByDescending和ThenBy/ThenByDescending方法。OrderBy用于基础升序排序,OrderByDescending用于降序排序;ThenBy则用于多级排序,在主排序基础上添加次要排序条件。文章通过数值、字符串和对象属性排序的示例,演示了单条件和多条件排序的实现方式,并对比了各方法的差异。关键注意事项包括排序的延迟执行特性、自定义排序规则、性能考量以及原序列不变性等。这些排序操作适用于数据展示、分析和查找等场景,能

2025-08-05 09:15:00 609

原创 C#Linq查询(九):连接与分组(纯干货)

摘要:本文介绍了LINQ中用于数据关联与分组的核心方法,包括按索引配对的Zip、类似SQL内连接的Join、左外连接的GroupJoin以及按键分组的GroupBy。这些操作支持高效的多源数据整合,能实现键值匹配、元素合并和分类统计等功能,适用于订单用户关联、销售数据分析等典型场景。所有方法均通过哈希表优化性能,复杂度为线性级别,并提供了丰富的参数配置来满足不同数据处理需求。

2025-08-04 14:12:33 2681

原创 C#Linq查询(八):集合操作(去重、合并、比较)(纯干货)

本文介绍了.NET中处理集合操作的常用方法,包括去重(Distinct/DistinctBy)、合并(Union/Concat)、集合比较(Intersect/Except)以及序列相等性判断(SequenceEqual)。这些方法能高效处理多组数据间的逻辑关系,避免手动遍历的繁琐操作。通过具体代码示例演示了各种场景下的应用,如对象集合的去重合并、自定义比较器实现等,并对比了不同方法间的核心逻辑与适用场景,为处理集合数据提供了实用指导。

2025-08-01 08:30:00 1070

原创 C#Linq查询(七):集合转换与创建(纯干货)

本文介绍了LINQ中的集合转换与创建操作,主要包括: 集合转换方法:ToArray()/ToList()用于将序列转换为数组或列表;ToDictionary()将序列转换为字典,支持快速键查找;ToHashSet()用于去重和快速元素检查。 查询类型切换:AsEnumerable()和AsQueryable()用于在客户端内存和数据库查询之间转换执行上下文。 序列创建方法:Range()生成连续整数序列,Repeat()创建重复元素序列,Empty<T>()创建空序列。 这些操作提供了数据类型的

2025-07-31 19:46:41 1638

原创 C#Linq查询(六):元素获取与空处理(纯干货)

本文介绍了LINQ中用于精确获取元素和处理空序列的四种核心方法及其变体: First()/FirstOrDefault():获取第一个元素(可带条件),前者在无匹配时抛出异常,后者返回默认值。适用于获取首个满足条件的元素。 Single()/SingleOrDefault():严格获取唯一元素,要求序列中必须只有一个匹配项,否则抛出异常。适合主键查询等确保唯一性的场景。 ElementAt()/ElementAtOrDefault():通过索引获取元素,处理越界情况时前者抛出异常,后者返回默认值。性能取决于

2025-07-30 19:41:45 1128

原创 C#Linq查询(五):聚合与数值计算(纯干货)

本文介绍了LINQ中的聚合与数值计算方法,包括Max/Min/Sum/Average等基础操作,以及.NET 6+新增的MaxBy/MinBy和灵活的Aggregate方法。这些方法可用于快速计算序列中的最大值、最小值、总和、平均值等统计信息,支持数值类型和对象属性。其中,MaxBy/MinBy返回符合条件的元素本身,Aggregate则支持自定义累积逻辑。需要注意的是,不同方法对空序列的处理方式不同:Sum返回0,其他方法可能抛出异常。这些操作是数据分析和统计的核心工具,适用于成绩统计、订单分析等场景。

2025-07-29 08:00:00 629

原创 C#Linq查询(四):元素添加与计数(纯干货)

本文介绍了C#中用于序列扩展和元素计数的常用方法,包括Append/Prepend、Count/LongCount和TryGetNonEnumeratedCount。这些方法可以在不修改原集合的前提下扩展序列或统计元素数量,其中Append/Prepend的时间复杂度为O(1),而Count方法对ICollection<T>为O(1),其他序列为O(n)。文章还提供了性能优化建议,如优先使用TryGetNonEnumeratedCount避免枚举开销,大数据集使用LongCount防止溢出,以及

2025-07-28 15:23:35 717

原创 C#Linq查询(三):存在性与集合检查(纯干货)

本文介绍了LINQ中用于存在性与集合检查的三个核心方法: Any() - 检查序列是否包含元素(无参)或存在满足条件的元素(有参),具有短路执行特性,适用于快速判断数据存在性。 All() - 验证所有元素是否都满足指定条件,同样支持短路执行,适合完整数据校验场景。 Contains() - 判断集合是否包含特定元素,需要注意值类型和引用类型的比较规则差异,自定义对象需实现IEquatable接口或使用比较器。 这些方法都返回布尔值,在数据验证、业务逻辑判断等场景中非常实用,其中Any()和All()具有短

2025-07-25 21:38:33 696

原创 C#Linq查询(二):投影与转换(纯干货)

本文介绍了LINQ中用于数据形态转换的核心投影操作,包括Select、SelectMany、Cast、Chunk等方法。Select实现一对一元素转换,SelectMany处理嵌套集合平铺,Cast进行强制类型转换,Chunk实现序列分块。这些方法支持从简单类型转换到复杂嵌套集合处理,是LINQ数据操作的重要组成部分。文章通过代码示例详细说明了每种方法的适用场景和使用要点,并提供了核心方法对比总结,帮助开发者灵活运用这些工具进行数据形态调整。

2025-07-25 21:32:17 825

原创 C#Linq查询(一):筛选与切片(纯干货)

本文介绍了LINQ中的筛选与切片操作,重点讲解了Where、OfType<T>、Skip/Take等核心方法。通过示例展示了单条件/多条件筛选、类型安全转换、分页处理、尾部元素操作等常见场景。特别比较了Where与TakeWhile的区别,以及OfType<T>和Cast<T>的类型安全性差异。文章还提供了组合使用这些方法实现复杂数据处理的实际案例,并总结了延迟执行、避免重复遍历等性能优化建议。这些LINQ操作能有效简化集合数据处理,提升代码可读性和开发效率。

2025-07-24 22:01:01 1523

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除