程序中有一数组
如:2,3,5,3,2,5比如我要将第二个3替换成7怎么弄呢?因为数组里面可能有多个重复的值。现在得到了数组的位置。不知道怎么替换指定位置的值

解决方案 »

  1.   

    int[] values = { 2, 3, 5, 3, 2, 5 };
    int counter = 0;
    for (int i = 0; i < values.Length; i++)
    {
    if (values[i] == 3)
    counter++;
    if (counter == 2)
    {
    values[i] = 7;
    break;
    }
    }
    foreach (int value in values)
    Response.Write(value + " ");
      

  2.   


            private void SetArr(int[] arr, int i)
            {
                arr = new int[] { 2, 3, 5, 3, 2, 5 };
                var v = arr.Select((m, index) => new { index, m }).Where(x => x.m == 3).Take(2).Reverse().First();
                arr[v.index] = 6;
            }        private void button10_Click(object sender, EventArgs e)
            {            int[] arr = new int[] { 2, 3, 5, 3, 2, 5 };
                SetArr(arr, 2);
            }
      

  3.   

    改一下//arr数组,i索引,n要改成的值
            private void SetArr(int[] arr, int i,int n)
            {
                var v = arr.Select((m, index) => new { index, m }).Where(x => x.m == 3).Take(2).Reverse().First();
                arr[v.index] = n;
            }        private void button10_Click(object sender, EventArgs e)
            {            int[] arr = new int[] { 2, 3, 5, 3, 2, 5 };
                SetArr(arr, 2,6);
            }
      

  4.   

    我现在能得到旧的数组内容,要替换的位置,和要替换的内容比如:
    string oldarr="1,2,3,4,5,5,6,7,4,3...."//旧的数组。
    int arrnum=3;//得到替换的位置。这个是通过URL传值过来的
    string newstr="5";//这个是要替换的新内容我要得到替换后的新的数组内容按上面的来说的话。结果就是
    string newarr="1,2,3,5...."这样了
      

  5.   

     
    private int[] RepalceArray(int[] values, int pos, int oldvalue, int newvalue)
                {
                    values[values.Select((a, i) => new { i, a }).Where(a => a.a.Equals(oldvalue)).Take(pos).Reverse().FirstOrDefault().i] = newvalue;
                    return values;
                }
    int[] values = { 2, 3, 5, 3, 2, 5,3 };
    values = RepalceArray(values,2,3,7);//将第二个3改成7
      

  6.   

    string oldarr = "1,2,3,4,5,5,6,7,4,3";
    int arrnum = 3;
    string newstr = "5";
    string[] parts = oldarr.Split(',');
    parts[arrnum] = newstr;
    string r = string.Join(",", parts);
    Response.Write(r);
      

  7.   

    注意:Linq是在.NET Framework 3.5 中出现的技术,所以在创建新项目的时候必须要选3.5或者更高版本,否则无法使用。
      

  8.   

    2005没有LINQ,你还是搞个变量,记录一下3的位置,符合你要的位置就修改此位置的值