如:
2,3,5,3,2,5
比如我要将第二个3替换成7怎么弄呢?
因为数组里面可能有多个重复的值。现在得到了数组的位置。不知道怎么替换指定位置的值
13 个解决方案
#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
现在只是假设是替换第二个3成7
如果是更多。而且不知道数组中的具体内容呢
数组内容是变的。而要替换的位置也是会变的
#3
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);
}
#4
改一下
//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);
}
#5
我现在能得到旧的数组内容,要替换的位置,和要替换的内容
比如:
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...."这样了
比如:
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...."这样了
#6
出错哦
#7
忘了说。我是用的VS2005
#8
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
#9
我怎么运行你们的方法都是错误的呢。运行不了哦。是不是版本问题。我的是2005.
#10
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);
#11
注意:Linq是在.NET Framework 3.5 中出现的技术,所以在创建新项目的时候必须要选3.5或者更高版本,否则无法使用。
#12
2005没有LINQ,你还是搞个变量,记录一下3的位置,符合你要的位置就修改此位置的值
#13
好的。谢谢两位耐心解答。分不多。见谅·
#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
现在只是假设是替换第二个3成7
如果是更多。而且不知道数组中的具体内容呢
数组内容是变的。而要替换的位置也是会变的
#3
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);
}
#4
改一下
//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);
}
#5
我现在能得到旧的数组内容,要替换的位置,和要替换的内容
比如:
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...."这样了
比如:
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...."这样了
#6
出错哦
#7
忘了说。我是用的VS2005
#8
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
#9
我怎么运行你们的方法都是错误的呢。运行不了哦。是不是版本问题。我的是2005.
#10
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);
#11
注意:Linq是在.NET Framework 3.5 中出现的技术,所以在创建新项目的时候必须要选3.5或者更高版本,否则无法使用。
#12
2005没有LINQ,你还是搞个变量,记录一下3的位置,符合你要的位置就修改此位置的值
#13
好的。谢谢两位耐心解答。分不多。见谅·