使用时ToList()
,是否需要考虑对性能的影响?
我正在编写一个查询以从目录中检索文件,该查询是:
string[] imageArray = Directory.GetFiles(directory);
但是,由于我想与之合作List<>
,所以我决定投入...
List<string> imageList = Directory.GetFiles(directory).ToList();
因此,在决定进行这种转换时是否应该考虑某种性能影响?或者仅在处理大量文件时才考虑?这是微不足道的转换吗?
Add
或Remove
,我将其保留为IEnumerable<T>
(甚至更好var
)
EnumerateFiles
而不是GetFiles
,因此将只创建一个数组。
GetFiles(directory)
,因为它目前在.NET中实现,所以几乎可以做到new List<string>(EnumerateFiles(directory)).ToArray()
。因此GetFiles(directory).ToList()
创建一个列表,从中创建一个数组,然后再次创建一个列表。就像2kay所说的那样,您应该更喜欢在EnumerateFiles(directory).ToList()
这里做。
List<T>
代替T[]
(除非转换当然会引起明显的性能问题,在这种情况下,我会重新访问它,我猜)。