在 C# 中,String.Join 方法是用于将数组或集合中的元素连接成一个字符串的静态方法。
public static string Join(string separator, params object[] values);
但是这个方法在数组中的元素有 null
或者空字符串时,分段也不会被跳过:
var temp = new string[] { "A", null, "B", "C", string.Empty, "D", null, null, "E", "F" };
var ret = String.Join("/", temp);
Console.WriteLine(ret);
//将会输出:A//B/C//D///E/F
如果想要跳过 null
和空字符串,一个简单的办法是使用 Linq 进行过滤:
var temp = new string[] { "A", null, "B", "C", string.Empty, "D", null, null, "E", "F" };
var ret = String.Join("/", temp.Where(f => !string.IsNullOrWhiteSpace(f)));
Console.WriteLine(ret);
//将会输出:A/B/C/D/E/F
同时,一个无需使用 Linq 的方法如下:
public static string Join(string separator, string[] value)
{
int s = 0;
for (var v = 0; v < value.Length; v++)
{
string str = value[v];
if (!string.IsNullOrWhiteSpace(str))
{
value[s] = str;
s++;
}
}
if (s <= 0) return string.Empty;
var ret = String.Join(separator, value, 0, s);
return ret;
}
该方法避免了使用 Linq 但在方法内部修改了数组,使用时需要注意。