gpt4 book ai didi

c# - 将 linq 方法语法转换为查询语法

转载 作者:行者123 更新时间:2023-12-04 00:48:39 24 4
gpt4 key购买 nike

并不是说它会更好,但我正在尝试将以下方法语法转换为查询语法以查看差异。

long diskSpace = Directory.EnumerateDirectories(@"c:\")
.SelectMany(Directory.EnumerateFiles)
.Sum(fileSize => new FileInfo(fileSize).Length);

最佳答案

该查询主要等同于:

long diskSpace = (from directory in Directory.EnumerateDirectories(@"c:\")
from file in Directory.EnumerateFiles(directory)
select file)
.Sum(file => new FileInfo(file).Length);

(我已将 fileSize 重命名为 file 以更准确地表示含义,顺便说一句。)

在这种情况下有一个实际区别 - 我们正在创建一个调用 Directory.EnumerateFiles 的新委托(delegate),而不是直接创建委托(delegate)来自 Directory.EnumerateFiles 方法组。换句话说,这是一个额外的重定向级别 - 但这不会对结果产生任何影响,如果它有任何显着性能影响,我会感到惊讶。

关于c# - 将 linq 方法语法转换为查询语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2115970/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com