string str1 = "str1_@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11, @p12, @p13";            string str2 = "@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11, @p12, @p13";
            string[] array = str2.Split(',');            for (int i = 0; i < array.Length; i++)
            {
                //替换过程
            }要求str1的值为“str1_@p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11, @p12, @p13, @p14”,

解决方案 »

  1.   

    你的需求,只是在最后添加了一个  @p14 ,为什么要用 replace 呢?
      

  2.   

    输出:str1_@p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11, @p12, @p13, @p14
      

  3.   


     string[] str1 = "str1_@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11, @p12, @p13".Split(',');
         var qury = from str in str1
             let str2 = str.Substring(0, str.Length - 1) + (int.Parse(str.Substring(str.Length - 1, 1)) + 1).ToString()
                           select str2;
     foreach (var g in qury)
                {
                    MessageBox.Show(g.ToString());
                }
      

  4.   

    谢谢楼上的LINQ方法。
    自己用了个小方法搞定了
    for (int i = array.Length-1; i >=0; i--)
                {
                    str1 = str1.Replace(array[i], Regex.Replace(array[i], @"\d", "") + "$temp" + (i + 1));
                }
                str1 = str1.Replace("$temp", "");