ASP.NET C# 如何在foreach循环中将文件路径存入List<string>并保留所有项
错误原因
你在循环内每次都重新实例化了List<string>对象,相当于每次遍历都会清空之前的列表,替换为仅包含当前文件路径的新列表,因此最终列表只会保留最后一次遍历的文件路径。
修复步骤
- 首先修正列表初始化逻辑,不要在初始化时传入空的
pngFile,避免列表产生无用的空字符串元素:
// 原错误初始化代码 // List<string> pngs = new List<string> { pngFile }; // 修改为初始化空列表 List<string> pngs = new List<string>();
- 修改循环内的逻辑,不要新建列表,调用列表的
Add()方法追加元素即可:
foreach (FileInfo foundFile in filesInDir) { pngFile = foundFile.FullName; pngs.Add(pngFile); }
补充说明
- 修改后所有匹配到的png文件完整路径都会按遍历顺序存入
pngs列表,后续可直接遍历该列表访问所有路径 - 如果你需要保留原代码中取最后一个匹配文件的逻辑,直接调用
pngs.Last()即可获取最后一个元素,无需单独维护pngFile变量
内容的提问来源于stack exchange,提问作者Tiago Silva
相关产品推荐
相关产品推荐

