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();
}