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

如何使用LINQ显示拆分后的数组元素?解决控制台输出System.String[]问题

解决方案:正确显示拆分后的字符串元素

哦,这个问题我太熟悉了!你当前的代码里,sequences.Select(s => s.Split(','))返回的是一个包含多个字符串数组的集合,当你直接对这个集合里的元素(也就是每个string[]数组)调用Console.WriteLine时,C#默认会输出对象的类型名称——也就是你看到的System.String[],而不是数组里的具体内容。

下面给你几种实用的解决办法,按需选择:

1. 扁平化所有元素(最常用)

如果你想把所有拆分后的元素一次性逐个输出,不用保留原来的分组,可以用SelectMany代替Select,它会把每个子数组里的元素都提取出来,合并成一个单一的字符串序列:

string[] sequences = {"red,green,blue","orange","white,pink"};
var allWords = sequences.SelectMany(s => s.Split(','));
foreach (var word in allWords)
{
    Console.WriteLine(word);
}

运行后会输出:

red
green
blue
orange
white
pink

2. 嵌套遍历保留分组

如果你想保留原来的分组结构(比如先显示第一组的所有元素,再显示第二组),可以用嵌套循环,外层遍历每个拆分后的数组,内层遍历数组里的单个元素:

string[] sequences = {"red,green,blue","orange","white,pink"};
var allWords = sequences.Select(s => s.Split(','));
foreach (var wordArray in allWords)
{
    // 遍历当前分组里的每个元素
    foreach (var word in wordArray)
    {
        Console.WriteLine(word);
    }
    // 可选:在每组之间加空行分隔
    Console.WriteLine();
}

运行后会输出:

red
green
blue

orange

white
pink

3. 把数组转成字符串后输出

如果想把每组的元素用指定分隔符连起来,一行显示一组内容,可以用string.Join把数组转换成字符串:

string[] sequences = {"red,green,blue","orange","white,pink"};
var allWords = sequences.Select(s => s.Split(','));
foreach (var wordArray in allWords)
{
    // 用空格分隔元素,也可以换成其他符号比如逗号、竖线等
    Console.WriteLine(string.Join(" ", wordArray));
}

运行后会输出:

red green blue
orange
white pink

核心问题就是你原来的遍历对象是数组本身,而不是数组里的单个元素,只要调整遍历的对象或者处理方式,就能正确显示内容啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:36:13