C# 技术备忘 (1)
419 字
2 分钟
C# 技术备忘 (1)

241228-LINQ
LINQ语言集成查询是一系列直接将查询功能集成到 C# 语言的技术统称。
241115-错误消息列表的格式化输出
using System;using System.Collections.Generic;using System.Linq;using System.Text;
namespace ConsoleApp{ internal class Program { static void Main(string[] args) { // 模拟错误消息列表 List<string> errorMsgList = new List<string> { "Field 'xxx1' is empty.", "Field 'xxx2' is empty.", "Field 'xxx3' is empty.", "Field 'xxx4' is empty." };
if (errorMsgList != null && errorMsgList.Any()) { // ===== 方式1:使用 StringBuilder ===== Console.WriteLine("=========[方式1]========="); StringBuilder valiMesStrBui = new StringBuilder(); int index = 1; foreach (string item in errorMsgList.Distinct()) { valiMesStrBui.AppendLine($"{index}.{item}"); index++; } valiMesStrBui.AppendLine("存在上述异常,请维护后再尝试提交"); Console.WriteLine(valiMesStrBui.ToString());
// ===== 方式2:使用 string.Join + LINQ Select ===== Console.WriteLine("=========[方式2]========="); string errorMessages = string.Join( Environment.NewLine, errorMsgList.Select((string msg, int i) => $"{i + 1}.{msg}")) + "\n 存在上述异常,请维护后再尝试提交"; Console.WriteLine(errorMessages); }
Console.ReadKey(); } }}两种方式对比
| 特性 | 方式1:StringBuilder | 方式2:string.Join + LINQ |
|---|---|---|
| 实现方式 | 命令式循环(foreach),逐步追加字符串 | 函数式风格(Select),一次性连接 |
| 可读性 | 步骤清晰,容易理解,适合初学者 | 代码更简洁、紧凑,表达力强,符合函数式编程习惯 |
| 性能 | 在循环内多次追加,但StringBuilder保证了高效的内存使用 | 在Select中生成中间字符串集合,然后一次性连接。对于小列表,差异可忽略 |
| 索引处理 | 手动维护 index 变量 | 利用Select的重载,直接获取索引 i |
| 扩展性 | 易于在循环中添加复杂逻辑(如条件过滤) | 易于链式调用其他LINQ方法(如Where、OrderBy) |
| 换行符使用 | 使用AppendLine,自动添加平台相关的换行符 | 使用Environment.NewLine显式指定,更明确 |
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
相关文章智能推荐
1
C# 技术备忘 - LINQ
CsharpLINQ是C#进阶的必经之路,它能让你用声明式的方式操作数据,代码会变得非常简洁优雅
2
使用DBeaver连接Dynamics 365 Dataverse
Dynamics 365在数据分析或开发工作中,有时我们希望能用熟悉的SQL工具直接查询Dataverse中的数据,除了使用SSMS、SQL 4 CDS外,还可以使用DBeaver,下文详细记录了配置过程。
3
Dynamics 365 事件框架、事件执行管道
Dynamics 365Dynamics 365 插件运行的“流水线”到底长什么样?
4
了解2FA(双因素认证)
理解计算机2FA,即双因素认证,是在登录或操作账户时,除了密码之外,还需要提供第二种身份验证方式,以增强账户安全性。
5
初尝Github Actions
Git和GithubGitHub Actions 是 GitHub 提供的 CI/CD 服务,早在 2018 年 10 月就已推出,但我一直未曾使用。最近遇到一个需求(如何更优雅地部署博客),才终于想起了它。目前我的站点放在自己的服务器上,每次都要先在本地编译,再手动打包上传到服务器,接着解压到 public 文件夹,整个过程有点繁琐。而博客的源码已经托管在 GitHub 上,我想,如果每次 push 后都能自动完成部署,那就太好了。于是研究了下 Github Actions,顺便把一些内容记录下来,方便日后查阅。
随机文章随机推荐
