并不是说它会更好,但我试图让我的头脑转向以下方法语法来查询语法以查看差异.
long diskSpace = Directory.EnumerateDirectories(@"c:\")
.SelectMany(Directory.EnumerateFiles)
.Sum(fileSize => new FileInfo(fileSize).Length);
Run Code Online (Sandbox Code Playgroud)
该查询大致相当于:
long diskSpace = (from directory in Directory.EnumerateDirectories(@"c:\")
from file in Directory.EnumerateFiles(directory)
select file)
.Sum(file => new FileInfo(file).Length);
Run Code Online (Sandbox Code Playgroud)
(我已经重命名fileSize为file更准确地表示意思,顺便说一下.)
在这种情况下有一个实际的区别 - 我们正在创建一个新的委托,它调用Directory.EnumerateFiles而不是直接从Directory.EnumerateFiles方法组创建委托.换句话说,它是一个额外的重定向级别 - 但这不会对结果产生任何影响,如果它有任何重大的性能影响我会感到惊讶.
| 归档时间: |
|
| 查看次数: |
1235 次 |
| 最近记录: |