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

如何遍历string数组并将元素分组存入object数组?

搞定splitWords数组分组:每3个元素合并成object数组的方案

嘿,我来帮你解决这个数组分组的问题!首先我得理清楚你的需求:把那段猜数字代码拆分后的splitWords字符串数组,每3个元素打包成一个元素,最终得到一个有5个元素的object[],但你现在的代码既不运行也没报错,对吧?

先给你一个能跑起来的实现代码

假设你的splitWords是把原代码按空格/符号拆成了单个元素的数组(比如每个单词、括号、运算符都是单独元素),下面是C#的可行实现,还能处理数组长度不是3的倍数的情况,确保最多生成5个元素:

// 这里模拟拆分好的splitWords数组(你可以替换成自己的实际数组)
string[] splitWords = { "//", "Write", "your", "main", "here", "Write", "(\"Enter", "a", "number", "between", "1", "&", "10:", "\");", "int", "input", "=", "Convert.ToInt32", "(ReadLine());", "Random", "ranNumberGenerator", "=", "new", "Random();", "int", "randomNumber;", "randomNumber", "=", "ranNumberGenerator.Next", "(1,", "11);", "if", "(input", "==", "randomNumber)", "{", "WriteLine(\"correct\");", "}", "else", "if", "(input", "<", "randomNumber)", "{", "WriteLine(\"too", "low\");", "}", "else", "{", "WriteLine(\"too", "high\");", "}" };

// 初始化目标object数组,最多5个元素(如果原数组元素不够15个,就按实际组数来)
object[] result = new object[Math.Min(5, (splitWords.Length + 2) / 3)];

for (int i = 0; i < result.Length; i++)
{
    // 计算当前组的起始和结束位置,避免索引越界
    int start = i * 3;
    int end = Math.Min(start + 3, splitWords.Length);
    
    // 把当前组的3个元素合并成一个字符串(你也可以选择存子数组,看需求)
    string combinedGroup = string.Join(" ", splitWords[start..end]);
    result[i] = combinedGroup;
}

// 打印结果看看(可以验证是否生成了5个元素)
foreach (var item in result)
{
    Console.WriteLine(item);
}

你的代码为啥没反应?大概率是这几个坑

如果你的代码既不运行也没报错,十有八九是踩了这些坑:

  • 循环逻辑写错了:比如循环的起始或结束条件不对,导致根本没往目标数组里赋值,甚至循环都没执行
  • 目标数组初始化错了:比如把object[]的长度设成了0,或者设得比实际能生成的组数大很多,结果里面都是空值
  • 拆分逻辑有问题:如果splitWords根本没拆对(比如整个代码是一个元素),那分组操作自然没效果
  • 没加验证输出:代码其实跑了,但你没加打印或调试语句,误以为没运行

额外调整:不想合并成字符串?存子数组也行

如果你不想把3个元素合并成字符串,而是直接把每3个元素的子数组存到object[]里,只要改一行代码就行:

// 把合并字符串的代码换成存子数组
result[i] = splitWords[start..end];

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:36:57