【发布时间】:2011-05-24 00:24:40
【问题描述】:
我怎样才能加快这个 linq 查询?
这需要很长时间,当我在列表中放置大量对象时,会出现内存异常。
List<DirectoryInfo> directoriesThatWillBeCreated = new List<DirectoryInfo>();
// some code to fill the list
// ..
// ..
List<FileInfo> FilesThatWillBeCopied = new List<FileInfo>();
// some code to fill the list
//....
directoriesThatWillBeCreated = (from a in FilesThatWillBeCopied
from b in directoriesThatWillBeCreated
where a.FullName.Contains(b.FullName)
select b).ToList();
我希望我可以做类似previous solution 的事情,但在处理不同类型的对象时我不知道该怎么做。我是否必须创建一个新类,然后将所有 FileInfo 和 DirectoryInfo 对象转换为该类,然后执行查询?此外,FileInfo 和 DirectoryInfo 类是密封的,我不能从它们继承,因此我必须创建一个新类,这样效率不高。至少这将比该查询更有效,因为该查询需要永远。
【问题讨论】:
-
你试过
b.FullName.Contains(a.FullName)之类的吗?
标签: c# linq performance