ToList()
时,需要考虑性能影响吗?我正在编写一个查询以从目录中检索文件,查询如下:
string[] imageArray = Directory.GetFiles(directory);
然而,由于我喜欢使用List<>
,因此我决定尝试使用以下代码:
List<string> imageList = Directory.GetFiles(directory).ToList();
那么,在决定进行此类转换时是否应该考虑某种性能影响 - 还是仅在处理大量文件时才需要考虑?这是一次微不足道的转换吗?
List<T>
可以使代码更加逻辑清晰、易读和易于维护,我会始终选择它,而不是T[]
(当然,如果转换确实导致了明显的性能问题,那么我可能会重新考虑)。 - SepsterAdd
或Remove
,我会将其保留为IEnumerable<T>
(或者更好的是var
)。 - p.s.w.gEnumerateFiles
而不是GetFiles
,这样只会创建一个数组。 - tukaefGetFiles(directory)
,基本上是执行了new List<string>(EnumerateFiles(directory)).ToArray()
。因此,GetFiles(directory).ToList()
会创建一个列表,然后从该列表创建一个数组,最后再次创建一个列表。正如2kay所说,这里应该优先考虑执行EnumerateFiles(directory).ToList()
。 - Joren