public void LoadFromFile() { Clear(); var headerRegex = new Regex(HeaderPattern); var _buffer = new FullFileBuffer(_filename); var header = ""; foreach (var line in _buffer) { if (headerRegex.HasNamedCapture(line, "header")) header = headerRegex.GetNamedCapture(line, "header"); else { var keyvalue = line.Split(_delim, 2); if (header == null) continue; if (keyvalue.Length != 2) continue; // Poorly formed line if (_trimWhitespace) keyvalue = keyvalue.Trim(); this[header, keyvalue[0]] = keyvalue[1]; } } }