Directory.EnumerateFiles和Directory.GetFiles有什么区别?

|
Directory.EnumerateFiles
GetFiles
有什么区别? 显然,一个返回数组,另一个返回Enumerable。 还要别的吗?     
已邀请:
从文档:   EnumerateFiles和GetFiles方法的区别如下:使用EnumerateFiles时,可以在开始返回整个集合之前开始枚举名称集合;否则,您可以开始枚举名称集合。使用GetFiles时,必须等待返回整个名称数组,然后才能访问该数组。因此,当您处理许多文件和目录时,EnumerateFiles可能会更有效。 因此,基本上,
EnumerateFiles
返回一个
IEnumerable
,可以稍作延迟地求值,而
GetFiles
返回一个ѭ5has,在返回之前必须对其进行完全填充。     
EnumerateFiles
返回
IEnumerable<string>
,这意味着推迟执行。仅在Fx4及更高版本中可用。     
使用EnumerateFiles时,如果再使用
.Last
,将失去所有速度。这当然是有道理的,因为要获取最后一个文件,将需要枚举所有文件,然后获取最后一个文件。 但是,使用
.First
.FirstOrDefault
变得非常快,因为它只是抓住了第一项并继续前进。     

要回复问题请先登录注册