Visual Studio中C#数组无法识别RemoveAt方法问题求助
问题解决:C#数组无法调用RemoveAt方法
错误提示翻译
'string[]' 不包含 'RemoveAt' 的定义,并且找不到可接受第一个 'string[]' 类型参数的可访问扩展方法 'RemoveAt'(是否缺少 using 指令或程序集引用?)
核心原因
C#中的普通数组(如string[]、int[])是固定长度结构,一旦创建就无法修改其长度,因此根本没有RemoveAt这类用于动态修改集合元素的方法。你测试时觉得数字数组能用,大概率是混淆了普通数组和List<int>——List是动态可变集合,天生支持增删操作。
解决方案
方案1:改用List(推荐)
把原来的数组类型替换为List<string>,它专门用于需要动态添加、删除元素的场景:
// 初始化List并添加角色属性 List<string> stats = new List<string> { "角色1属性", "角色2属性", ... // 填入你的10个角色属性 }; // 调用RemoveAt删除指定索引元素(注意索引从0开始) stats.RemoveAt(indexNo - 1);
方案2:手动处理数组(不推荐,仅作参考)
如果一定要用数组,需要手动创建新数组来实现“删除”效果:
int indexToRemove = indexNo - 1; // 创建长度减1的新数组 string[] newStats = new string[stats.Length - 1]; // 复制删除位置之前的元素 Array.Copy(stats, 0, newStats, 0, indexToRemove); // 复制删除位置之后的元素 Array.Copy(stats, indexToRemove + 1, newStats, indexToRemove, stats.Length - indexToRemove - 1); // 替换原数组 stats = newStats;
内容的提问来源于stack exchange,提问作者LieuRiolu
相关产品推荐
相关产品推荐

