C#达人进

来源:百度知道 编辑:UC知道 时间:2024/09/22 06:54:21
for (j = i; j < sum - 1; j++)
{
phonenumber[j] = phonenumber[j + 1];
}
File.Delete(@"save\" + "phonenumber.txt");
StreamWriter writerPhone = File.AppendText(@"save\" + "phonenumber.txt");

for (j = 0; j < sum - 2; i++)
{
writerPhone.WriteLine(phonenumber[j]);
}
writerPhone.Close();

其中i是已知的一个全局变量,小于sum,sum是索引的上限,也是已知的。我现在是想实现删除数组中一个元素。
数组中的元素都是string类型的
VS说“无法对属性或索引器“string.this[int]”赋值 -- 它是只读的”

我写的方法
需要引用using System.Collections;
/// <summary>
/// 删除字符数组中的一项
/// </summary>
/// <param name="s">数组名</param>
/// <param name="i">index</param>
public void drop(string[] s, int i)
{
ArrayList al = new ArrayList(s);
al.RemoveAt(i);
s = (string[])al.ToArray(typeof(string));
}

3

请你确定你的 phonenumber 是一个string[]类型

但VS的提示是你用string类型调用索引器的,当然出错

string类型的索引器是只读的,只能获取每个下标的字符而已
不能对他赋值
你可以调用ToCharArray()方法来转换为一个字符数组,然后再进行你的操作