C# 从列表中删除元素或根本不将它们放入
我有一个文件名列表。 我需要排除名称中包含关键字的文件 我试过:C# 从列表中删除元素或根本不将它们放入,c#,list,foreach,C#,List,Foreach,我有一个文件名列表。 我需要排除名称中包含关键字的文件 我试过: List<string> fileList = Directory.GetFiles(path).ToList(); foreach (string file in fileList) { if (file.Contains("KEYWORD")) { fileList.Remove(file); } } List fi
List<string> fileList = Directory.GetFiles(path).ToList();
foreach (string file in fileList)
{
if (file.Contains("KEYWORD"))
{
fileList.Remove(file);
}
}
List fileList=Directory.GetFiles(path.ToList();
foreach(文件列表中的字符串文件)
{
if(file.Contains(“关键字”))
{
文件列表。删除(文件);
}
}
获取错误:集合已被修改。枚举操作可能无法启动。
但它不起作用。你知道为什么还是有更好的解决办法
谢谢。试试这个
List<string> fileList = new List<string>();
fileList.Add("ioerhg");
fileList.Add("ioerhg");
fileList.Add("KEYWORD");
List<string> fileListNew = fileList.Where(x => !x.Contains("KEYWORD")).ToList();
List fileList=newlist();
文件列表。添加(“ioerhg”);
文件列表。添加(“ioerhg”);
文件列表。添加(“关键字”);
List fileListNew=fileList.Where(x=>!x.Contains(“关键字”)).ToList();
您的问题不清楚,尽管这应该可以工作,因为我觉得这很好。您可以分享您遇到的错误吗?它不应该工作。他正在更改他在foreach中列举的收藏。您可以使用传统的for循环,并以相反的顺序检查元素。这样,您就可以安全地浏览列表中的所有位置。如果您从开始到结束,假设您删除了i=1处的项。然后您必须重新检查i=1,而不是转到i=2。