使用String.Join将数组转换为字符串后从字符串中删除多余的逗号(C#)

Chr*_*ris 49 c# string join

这里有个问题.我正在使用String.Join将数组转换为字符串.我遇到的一个小问题是,在数组中,一些索引位置将为空白.一个例子如下:

array[1] = "Firstcolumn"
array[3] = "Thirdcolumn"
Run Code Online (Sandbox Code Playgroud)

通过使用String.Join(",",array);,我将得到以下内容:

Firstcolumn ,, Thirdcolumn

注意额外的,.如何在使用String.Join时从字符串中删除额外的逗号,或者理想情况下不包含空索引?

Las*_*olt 84

试试这个 :):

var res = string.Join(",", array.Where(s => !string.IsNullOrEmpty(s)));
Run Code Online (Sandbox Code Playgroud)

这将只加入不是null或的字符串"".

  • 我喜欢你正在解决问题的原因,而不仅仅是用黑客包扎问题! (17认同)

ber*_*hof 34

一个简单的解决方案是使用linq,通过在加入之前过滤掉空项.

// .net 3.5
string.Join(",", array.Where(item => !string.IsNullOrEmpty(item)).ToArray());
Run Code Online (Sandbox Code Playgroud)

在.NET 4.0中,string.IsNullOrWhiteSpace如果您还想过滤掉空白或仅包含空白字符的项目,您也可以使用它(请注意,在.NET 4.0中,您不必ToArray在这种情况下调用):

// .net 4.0
string.Join(",", array.Where(item => !string.IsNullOrWhiteSpace(item)));
Run Code Online (Sandbox Code Playgroud)

  • 在撰写本文时,+1是提及ToArray的唯一答案(顺便提一下,这在.NET 4中是不必要的). (4认同)