C#/.NET应用程序编程开发中如何将一个数组转换成用逗号分隔的字符串?

C#开发 作者: Rector 24 次阅读 · 读完约需 1 分钟 收藏本文

郑重申明:本文未经许可,禁止任何形式转载

问题描述

C#/.NET应用程序编程开发中,如何将一个数组转换成用逗号分隔的字符串?

比如有数组arr,定义如下:

int[] arr = new[] { 1, 2, 3, 4, 5 };

如何将数组arr转换成以逗号分隔的字符串呢,如下:

string result = "1,2,3,4,5";

方案一

如果是.NET 4以及上版本,可以使用.NET Framework内置的string.Join()静态方法,Join()方法的参数声明如下:

public static string Join<T>(string separator, IEnumerable<T> values);

使用示例如下:

using System;

namespace ConsoleApp2
{
    class Program
    {
        public static void Main()
        {
            int[] arr = new[] { 1, 2, 3, 4, 5 };
            string result = string.Join(",",arr);
            Console.WriteLine($"result:{result}");
            Console.ReadLine();
        }       
    }
}

输出结果:

result:1,2,3,4,5

方案二

如果是.NET 4以下版本中,则可以使用Array.ConvertAll()方法转换,如下:

string result = string.Join(",", Array.ConvertAll(arr, x => x.ToString()))

方案三

使用LINQ的Select()Aggregate()方法转换,如下:

string arrTostr = arr.Select(a => a.ToString()).Aggregate((i, j) => i + "," + j);

方案三

为了方法的可复用,可以为IEnumerable创建一些静态扩展方法,如下:

public static string ToDelimitedString<T>(this IEnumerable<T> lst, string separator = ", ")
{
    return lst.ToDelimitedString(p => p, separator);
}

public static string ToDelimitedString<S, T>(this IEnumerable<S> lst, Func<S, T> selector, 
                                             string separator = ", ")
{
    return string.Join(separator, lst.Select(selector));
}

调用示例:

string result = new int[] { 1, 2, 3, 4, 5 }.ToDelimitedString();

阅读了该文章的人还浏览了...

本文永久链接码友网 » C#/.NET应用程序编程开发中如何将一个数组转换成用逗号分隔的字符串?

发布于: 2019-07-23 10:15:04
分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册