【发布时间】:2021-02-02 07:43:18
【问题描述】:
我正在尝试从数组中删除项目以过滤掉包含某些特定单词的项目,我正在越界异常,我想不出如何解决它...请帮助!
string[] files = {
"image4.png",
"copy.psd",
"image3.jpg",
"image1.png",
"image2.png",
};
string numToRemove = "";
string[] namesArray = Console.ReadLine().Split(',');
int num = 0;
foreach(string t in files){
Console.WriteLine(t);
foreach(string s in namesArray){
if(files[num].Contains(s)){
numToRemove = s;
Console.WriteLine("exist");
files = files.Where(val => val != numToRemove).ToArray();
}
}
num++;
};
编辑: 感谢大家的快速解答和解决方案
【问题讨论】:
-
你不能使用列表吗?它会让你的生活更轻松,无论如何,有很多数组操作可以帮助你:dotnetperls.com/array-resize
-
在
files数组的 foreach 中重新分配files数组是一个可怕的计划,肯定会在你的脸上炸毁。如果你想删除 sans-LINQ,正常的过程是向后迭代(正常的for循环),这样你就可以删除而不是弄乱你的索引。
标签: c# loops indexoutofboundsexception