我使用列表来限制文件大小,因为目标限制在磁盘和内存中。这就是我现在正在做的,但是有没有更有效的方法?
readonly List<string> LogList = new List<string>(); ... var logFile = File.ReadAllLines(LOG_PATH); foreach (var s in logFile) LogList.Add(s);
var logFile = File.ReadAllLines(LOG_PATH); var logList = new List<string>(logFile);
由于logFile是数组,因此可以将其传递给List<T>构造函数。在阵列上迭代或使用其他IO类时,这消除了不必要的开销。
logFile
List<T>
实际的构造函数实现:
public List(IEnumerable<T> collection) { ... ICollection<T> c = collection as ICollection<T>; if( c != null) { int count = c.Count; if (count == 0) { _items = _emptyArray; } else { _items = new T[count]; c.CopyTo(_items, 0); _size = count; } } ... }