LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

C#使用 Join 与 Loops 分隔符拼接字符串区别

admin
2024年10月30日 20:43 本文热度 329

前言

字符串连接是 .NET 中常见的操作,而将多个字符串连成一个具有指定分隔符的字符串也是一项常见的任务。C# 有种主要的方法来实现,分别是循环手动连接字符串和String内置的Join方法。本文将比较这两种方法,并展示两者的区别,通过对比我们可以了解使用 String.Join 在两者中是其更好的选择。

两种方法

1、String.Join

在.NET 的 System 命名空间下,String 类中的 Join 方法,此方法可用于连接具有指定分隔符的字符串数组或集合。

using System;
namespace Fountain.WinConsole.JoinDemo{    class Program    {        static void Main(string[] args)        {            string[] expressArray = { "ZTO", "YUNDA", "STO","JT","JD","SF" };            string result = String.Join(",", expressArray);            // 输出 ZTO,YUNDA,STO,JT,JD,SF            Console.WriteLine(result);            Console.ReadKey();        }    }}
从.NET 4.5 后Join 还支持 IEnumerator<T>
using System;using System.Collections.Generic;
namespace Fountain.WinConsole.JoinDemo{    internal class Program    {        static void Main(string[] args)        {            List<string> expressList = new List<string>();            expressList.Add("ZTO");            expressList.Add("YTO");            expressList.Add("JT");            expressList.Add("SF");            expressList.Add("JD");            // Join 以,分隔符连接字符串            string result = string.Join(",", expressList);            // 输出 ZTO,YTO,JT,SF,JD            Console.WriteLine(result);            Console.ReadKey();        }    }}
2、 Loops 循环

使用 for 或者 foreach 循环来手动连接字符串,此方法通过访问集合并将分隔符与每个元素添加到结果字符串中。

例:数组集合

namespace Fountain.WinConsole.LoopsDemo{    class Program    {        static void Main(string[] args)        {            string[] expressArray = { "ZTO", "YUNDA", "STO","JT","JD","SF" };            string result = string.Empty;            for (int j = 0; j < expressArray.Length; j++)            {                result += expressArray[i];                if (j < expressArray.Length - 1)                {                    result += ",";                }            }            // 输出 ZTO,YUNDA,STO,JT,JD,SF             Console.WriteLine(result);            Console.ReadKey();        }    }}
例:List 集合
using System;using System.Collections.Generic;using System.Text;
namespace Fountain.WinConsole.LoopsDemo{    internal class Program    {        static void Main(string[] args)        {            List<string> expressList = new List<string>();            expressList.Add("ZTO");            expressList.Add("YTO");            expressList.Add("JT");            expressList.Add("SF");            expressList.Add("JD");
           StringBuilder result = new StringBuilder();            for (int i = 0; i < expressList.Count; i++)            {                result.Append(expressList[i]);                if (i < expressList.Count - 1)                {                    result.Append(",");                }            }            // 输出 ZTO,YUNDA,STO,JT,JD,SF            Console.WriteLine(result);            Console.ReadKey();        }    }}

方法比较

1、 代码可读性:Join 简洁明了; 循环需要更多代码与逻辑;
2、效率:Join 针对性能进行优化,最大限度地减少分配; 循环由于字符串不可变,效率可能较低;
3、可维护性:Join 标准方法,更易于理解; 循环代码与逻辑较多,更难维护;
4、功能性:Join 提供额外的过载和选项; 循环边缘情况需要额外的逻辑 ;
5、用法:Join 非常适合联接数组或集合; 循环适合自定义格式需求;

小结

本文使用的二种使用分隔符连接字符串的方法中,即使这两种方法获得的结果相同。String.Join 方法提供了更好的功能、可读性、性能和可维护性。在处理分隔符拼接字符串集合时,应为首选。


该文章在 2024/11/1 9:04:36 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved