You need to enable JavaScript to run this app. C# 拆分Socket接收的下划线分隔字符串后控制台不输出变量值问题
优惠活动
大模型
产品
解决方案
定价
更多

C# 拆分Socket接收的下划线分隔字符串后控制台不输出变量值问题

问题根因

你的字符串拆分逻辑本身没有问题,故障是Console.WriteLine的调用方式错误导致的:
C#中Console.WriteLine的多参数重载要求第一个参数为带占位符的格式化字符串,后续参数需和{0}、{1}这类占位符一一对应。你当前写法只给了第一个格式化字符串"individual strings: \n",没有对应的占位符,所以后续所有参数都会被直接忽略,不会输出。

修正方案

你可以任选下面任意一种写法修复打印逻辑:

  1. 使用格式化占位符写法
Console.WriteLine("individual strings: \nproce0: {0}\nproce1: {1}\nproce2: {2}\nproce3: {3}\nproce4: {4}\nproce5: {5}",
    proce0, proce1, proce2, proce3, proce4, proce5);
  1. 使用C# 6+支持的字符串插值(可读性更高,推荐)
Console.WriteLine($"individual strings: \nproce0: {proce0}\nproce1: {proce1}\nproce2: {proce2}\nproce3: {proce3}\nproce4: {proce4}\nproce5: {proce5}");

可选优化

建议在拆分后先校验数组长度,避免客户端发送的字符串格式不符合预期时触发索引越界异常:

string[] Splitdata1 = content.Split('_');
if (Splitdata1.Length >= 6)
{
    string proce0 = Splitdata1[0];
    string proce1 = Splitdata1[1];
    string proce2 = Splitdata1[2];
    string proce3 = Splitdata1[3];
    string proce4 = Splitdata1[4];
    string proce5 = Splitdata1[5];
    // 后续打印逻辑
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 01:06:03