在 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 但在方法内部修改了数组,使用时需要注意。