字符串迭代c#mono

字符串迭代c#mono,c#,string,unity3d,mono,C#,String,Unity3d,Mono,我有长度为2418060个字符的字符串。 此字符串包含数字、大括号和一些特殊符号。这是一个样本 !(242.9288)F(562.7884)/(45)!(242.9288)F(126.8685)&(18.95)F(126.8685)!(140.2591)F(114.399)& 这是LinderMayer系统,所以每个字符都有空间动作,括号中的数字是变量 我如何通过这个快速迭代?当我通过simple for循环逐字符迭代时,它会持续10分钟,而Unity在此之后不会响应。。当然在

我有长度为2418060个字符的字符串。 此字符串包含数字、大括号和一些特殊符号。这是一个样本

!(242.9288)F(562.7884)/(45)!(242.9288)F(126.8685)&(18.95)F(126.8685)!(140.2591)F(114.399)&
这是LinderMayer系统,所以每个字符都有空间动作,括号中的数字是变量

我如何通过这个快速迭代?当我通过simple for循环逐字符迭代时,它会持续10分钟,而Unity在此之后不会响应。。当然在里面我有开关:

switch (array[i])
             {
                 //TurnLeft
                 case '+':
                     i+=2;
                     do
                     {
                         checkingString.Append(array[i]);
                         i++;
                     } while (array[i] != ')');

                     value=float.Parse(checkingString.ToString());

                     currentPosRot.rotation = Quaternion.AngleAxis(value, Vector3.left) * currentPosRot.rotation;

                    //position = position + (rotation * new Vector3(0, 2, 0));

                    //curve.AddPointAt(position);


                    checkingString = new StringBuilder();

                     value = 0.0f;
                     break;
                 //Turn right
                 case '-': ...

这是一个优化问题。我假设在这种特定情况下,第二条优化规则将适用:不要优化

第1步:将输入数据(2MB字符串)缩减到合理的可测试大小。使其能够连接Unity profiler,并在不到10秒内获得性能结果

步骤2:配置文件。查看处理时间的确切去向


步骤3:选择第一个一次性耗电元件,并对其进行改进,以降低处理能力。然后从第2步开始,直到您的性能问题得到解决。

为什么会有反对票?