我有一个动态大小的字符串数组。
例如:
string[] UserName_arr = new string[usercount + 1];
// here usercount would be int value considering it as 4 so the array size would be 5.
我需要将每个UserName_arr值添加到单个字符串中,只使用特殊字符 <
符号进行合并。
当我使用此代码main_UserName = String.Join("<", UserName_arr);
我得到的字符串为main_UserName =a1<a2<a3<
我的字符串
<
我查了this link但无法到达任何地方
答案 0 :(得分:5)
这会是你想要做的吗?
UserName_arr.Aggregate((x,y) => x + "<" + y);
您可以在聚合here上查看更多内容。
或者您可以在代码中执行TrimEnd
:
main_UserName = String.Join("<", UserName_arr);
main_UserName = main_UserName.TrimEnd('<');
String.Join
示例:
string[] dinosaurs = new string[] { "Aeolosaurus",
"Deinonychus", "Jaxartosaurus", "Segnosaurus" };
string joinedString = string.Join(", ", dinosaurs);
Console.WriteLine(joinedString);
输出:
Aeolosaurus,Deinonychus,Jaxartosaurus,Segnosaurus
最后看到没有,。
请参阅String.Join
this example。
修改:
根据OP的评论和Vera rind的评论,OP面临的问题是String数组的错误声明。
它有一个元素超过了需要,导致在数组末尾是一个Null
元素。
由于空的最后一个元素与String.Join
一起使用时,此数组导致不需要的&#34;&lt;&#34;在末尾。
将数组声明更改为:
string[] UserName_arr = new string[usercount];
或者在Join条件中检查空字符串:
String.Join("<", UserName_arr.Where(x => string.IsNullOrEmpty(x) == false))
答案 1 :(得分:3)
喜欢&#39; Vera rind&#39;在评论中提到,您可以省略数组中的空用户名:
main_UserName = String.Join(
"<",
UserName_arr.Where(name => !string.IsNullOrWhiteSpace(name));
问题是数组中的最后一个元素为null或为空 - 这就是在没有任何内容之后添加最后一个逗号的方式。