You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#入门求助:输出数组时显示System.String[]问题

解决C#数组输出显示System.String[]的问题

嗨,刚入门C#就能动手写Split的代码,已经很棒啦!你遇到的这个问题其实是新手非常常见的小误区,我来帮你理清楚~

问题原因

当你直接用Console.Write(substrings)输出数组时,C#默认会调用数组的ToString()方法,而这个方法的默认实现只会返回数组的类型名称(也就是你看到的System.String[]),并不会帮你遍历输出数组里的每一个元素。

修正方案

要正确输出数组内容,有两种常用的方式:遍历数组逐个输出,或者用string.Join把数组元素拼接成一个字符串再输出。另外我也调整了你的代码顺序,让逻辑更清晰:

namespace stringSplit { 
    class Program { 
        static void Main(string[] args) { 
            string[] separator = { ", ", "; " }; 
            string names = "Peter, John; Andy, , David"; 
            
            // 第一种Split:保留空元素
            string[] substrings = names.Split(separator, StringSplitOptions.None);
            Console.WriteLine("保留空元素的Split结果:");
            // 遍历数组,逐个输出元素
            foreach (string item in substrings)
            {
                Console.WriteLine(item);
            }
            Console.ReadLine();
            
            // 第二种Split:移除空元素
            string[] substrings2 = names.Split(separator, StringSplitOptions.RemoveEmptyEntries);
            Console.WriteLine("\n移除空元素后的Split结果:");
            // 用string.Join把数组元素用换行符拼接后输出
            Console.WriteLine(string.Join("\n", substrings2));
            Console.ReadLine();
        } 
    } 
}

关键改动说明

  • 遍历输出:用foreach循环逐个访问数组里的每个元素,这样就能把每个字符串内容打印出来,包括那些空元素。
  • string.Join拼接:这个方法可以把数组里的所有元素用指定的分隔符(这里用了换行符\n)拼接成一个完整的字符串,一次性输出,代码更简洁。
  • 调整代码顺序:原来的代码里先写了substrings2的定义再输出names,虽然语法没问题,但调整后逻辑更连贯,先处理第一种Split再处理第二种,输出也更清晰。

额外小提示

你原来的代码里Console.Write(names)只是输出了原始的字符串,如果你不需要的话可以删掉,或者改成Console.WriteLine("原始字符串:" + names)来明确标注。

内容的提问来源于stack exchange,提问作者Jack Kelleher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:01:06