将文件名从目录复制到通用列表中
本文关键字:列表 复制 文件名 | 更新日期: 2023-09-27 18:08:58
我有一个奇怪的行为,不知道从这里去哪里。我正试图从目录中读取文件名,并将其添加到类型<string>
的通用列表中。
string path = @"C:'mydir'";
foreach (string s in Directory.GetFiles(path, "*.bak").Select(System.IO.Path.GetFileName))
{
GenericList1.Add(s);
}
我得到错误:
对象引用未设置为对象的实例。
当我调试时,我看到变量s
将文件名显示为值。事实上,当我使用:
foreach (string s in Directory.GetFiles(path, "*.bak").Select(System.IO.Path.GetFileName))
{
System.Windows.Forms.MessageBox.Show(s);
}
谁知道我可能在哪里出错了?
foreach (string s in Directory.GetFiles(path, "*.bak").Select(p => Path.GetFileName(p)))
{
GenericList1.Add(s);
}
Select
方法需要在每个对象上执行一个函数。最简单的方法是使用一个简单的lambda。
当你使用lambda时,你基本上是在创建一个匿名方法或函数。Select
方法需要知道您希望对集合中的每个项执行什么函数或操作。在本例中,您希望获得GetFiles
方法返回的集合中每个项目的文件名。如果你需要更多的解释,请告诉我。