使用时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[](除非转换当然会引起明显的性能问题,在这种情况下,我会重新访问它,我猜)。