![]() |
1
2
我分享了你的问题,在Matthew Podwysocki的 excellent post 在 codebetter.com . 他使用本地方法实现了一个解决方案,该方法允许您在他的getfiles实现中提供一个谓词。此外,他使用yield语句实现了他的解决方案,有效地将每个文件的内存利用率降低到了绝对最低。 通过他的代码,您可以编写如下内容:
files变量将指向返回匹配文件(延迟执行样式)的枚举器。 |
![]() |
2
1
关于内存消耗,你是对的。然而,我认为这是一个相当过早的优化。加载几千个字符串的数组完全没有问题,无论是性能还是内存消耗都没有问题。但是,读取包含许多文件的Directoy时, 是 _ |
![]() |
3
1
getfiles方法只读取文件名,而不读取文件内容,因此在读取所有名称时可能会浪费资源,我不认为这是需要担心的。 据我所知,唯一的选择是执行多个getfiles调用并将结果添加到集合中,但这会变得笨拙,需要您扫描文件夹几次,因此我怀疑速度也会变慢。 |
![]() |
4
1
创建自己的目录遍历函数并使用
C#
编辑:我做了一个简单的测试,我不知道这是否正是你需要的。
我知道你不能太依赖
Runing time: 605ms GC.GetTotalMemory(false): 3444684 Runing time: 577ms GC.GetTotalMemory(false): 3293368 |
![]() |
Imad · Linq扩展方法没有使用Object类的Equals 1 年前 |
![]() |
user8512043 · 根据每个元素中的数字对列表进行排序 2 年前 |
![]() |
Nick Fleetwood · 调度语法的LINQ查询 2 年前 |
![]() |
Asdrubal Hernandez · Linq查询特定数组索引出错 2 年前 |
![]() |
Drago · Linq通过比较Id和具有Id的对象列表来查询获取列表 2 年前 |