替换数组中指定位置的值?

fxxyz 2012-05-10 03:12:48
程序中有一数组
如:

2,3,5,3,2,5

比如我要将第二个3替换成7怎么弄呢?

因为数组里面可能有多个重复的值。现在得到了数组的位置。不知道怎么替换指定位置的值
...全文
1548 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
fxxyz 2012-05-10
  • 打赏
  • 举报
回复
好的。谢谢两位耐心解答。分不多。见谅·
bdmh 2012-05-10
  • 打赏
  • 举报
回复
2005没有LINQ,你还是搞个变量,记录一下3的位置,符合你要的位置就修改此位置的值
  • 打赏
  • 举报
回复
注意:Linq是在.NET Framework 3.5 中出现的技术,所以在创建新项目的时候必须要选3.5或者更高版本,否则无法使用。
dalmeeme 2012-05-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);
fxxyz 2012-05-10
  • 打赏
  • 举报
回复
我怎么运行你们的方法都是错误的呢。运行不了哦。是不是版本问题。我的是2005.
  • 打赏
  • 举报
回复
 
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
fxxyz 2012-05-10
  • 打赏
  • 举报
回复
忘了说。我是用的VS2005
fxxyz 2012-05-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
改一下

C# code

//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).Revers……
[/Quote]

出错哦
fxxyz 2012-05-10
  • 打赏
  • 举报
回复
我现在能得到旧的数组内容,要替换的位置,和要替换的内容

比如:
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...."这样了
bdmh 2012-05-10
  • 打赏
  • 举报
回复
改一下

//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);
}
bdmh 2012-05-10
  • 打赏
  • 举报
回复

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);
}
fxxyz 2012-05-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
C# code
int[] values = { 2, 3, 5, 3, 2, 5 };
int counter = 0;
for (int i = 0; i < values.Length; i++)
{
if (values[i] == 3)
counter++;……
[/Quote]

现在只是假设是替换第二个3成7

如果是更多。而且不知道数组中的具体内容呢

数组内容是变的。而要替换的位置也是会变的
dalmeeme 2012-05-10
  • 打赏
  • 举报
回复
		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 + " ");

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧