首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >c# String.Join 方法忽略 null 和空字符串

c# String.Join 方法忽略 null 和空字符串

原创
作者头像
Power
发布2025-04-03 16:05:35
发布2025-04-03 16:05:35
17200
代码可运行
举报
运行总次数:0
代码可运行

在 C# 中,String.Join 方法是用于将数组或集合中的元素连接成一个字符串的静态方法。

代码语言:javascript
代码运行次数:0
运行
复制
public static string Join(string separator, params object[] values);

但是这个方法在数组中的元素有 null 或者空字符串时,分段也不会被跳过:

代码语言:javascript
代码运行次数:0
运行
复制
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 进行过滤:

代码语言:javascript
代码运行次数:0
运行
复制
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 的方法如下:

代码语言:javascript
代码运行次数:0
运行
复制
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 但在方法内部修改了数组,使用时需要注意。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档