C# 什么';在C语言中,将整数列表转换为逗号分隔的数字字符串是最简单的方法#

C# 什么';在C语言中,将整数列表转换为逗号分隔的数字字符串是最简单的方法#,c#,string,int,C#,String,Int,我在这里寻找一个班轮,首先是: int [] a = {1, 2, 3}; List<int> l = new List<int>(a); 这是假设您是在.NET3.5W/Linq下编译的 String.Join(",", l); 或者在.NET4.0中,您可以尝试(尽管我不确定它是否可以编译): 另一种方法是: string s = a.Aggregate("", (acc, n) => acc == "" ? n.ToString() : acc + "

我在这里寻找一个班轮,首先是:

int [] a = {1, 2, 3};
List<int> l = new List<int>(a);
这是假设您是在.NET3.5W/Linq下编译的

  String.Join(",", l);
或者在.NET4.0中,您可以尝试(尽管我不确定它是否可以编译):


另一种方法是:

string s = a.Aggregate("", (acc, n) => acc == "" ? n.ToString() : acc + "," + n.ToString());

我知道您正在寻找一个单行程序,但是如果您创建一个扩展方法,那么将来所有的使用都是一个单行程序。这是我使用的一种方法


public static string ToDelimitedString<T>(this IEnumerable<T> items, string delimiter)
{
    StringBuilder joinedItems = new StringBuilder();
    foreach (T item in items)
    {
        if (joinedItems.Length > 0)
            joinedItems.Append(delimiter);

        joinedItems.Append(item);
    }

    return joinedItems.ToString();
}

公共静态字符串ToDelimitedString(此IEnumerable项,字符串分隔符)
{
StringBuilder joinedItems=新的StringBuilder();
foreach(项目中的T项目)
{
如果(joinedItems.Length>0)
附加(分隔符);
joinedItems.追加(项目);
}
返回joinedItems.ToString();
}
对于您的列表,它变成:
l.ToDelimitedString(“,”)

为了方便起见,我添加了一个总是使用逗号作为分隔符的重载。

不能在int[]数组上使用string.join。这不能编译。编辑:嗯。。根据另一篇文章,如果你在.NET4.0中,你可以。你应该在你的帖子中说明这一点。对不起,我可能不清楚,我想转换
l
,而不是
a
。所以,为了改写这个,我会说:List l=new List();l、 增加(1);l、 增加(2);l、 增加(3);我想以
“1,2,3”
结束,或者说
listl=newlist{1,2,3}
在这种情况下,
ConvertAll
ToArray
方法与LINQ无关:它们属于
列表
类型本身。(但如果您确实希望此代码使用较旧版本的C#进行编译,则需要使用
delegate
语法而不是lambda作为方法参数。)对于.NET 4,您可以只使用
string.Join(“,”,l)
:没错,这就可以完成任务,虽然它会比大型列表中的各种
String.Join
答案慢得多。我不是反对票,但我要指出,这比
String.Join
慢得多。。。
  String.Join(",", l);
string s = string.Join(",", Array.ConvertAll(a, i => i.ToString()));
string s = string.Join(",", a);
int[] array = {1,2,3};

string delimited = string.Join(",", array);
string s = a.Aggregate("", (acc, n) => acc == "" ? n.ToString() : acc + "," + n.ToString());
l.Select(i => i.ToString()).Aggregate((s1, s2) => s1 + "," + s2)

public static string ToDelimitedString<T>(this IEnumerable<T> items, string delimiter)
{
    StringBuilder joinedItems = new StringBuilder();
    foreach (T item in items)
    {
        if (joinedItems.Length > 0)
            joinedItems.Append(delimiter);

        joinedItems.Append(item);
    }

    return joinedItems.ToString();
}