public static void FindPossibleValuesForKey(string file, string key) { KVLib.KeyValue srcDoc = KVLib.KVParser.KV1.Parse(File.ReadAllText(file)); List <string> foundValues = new List <string>(); foreach (KVLib.KeyValue k in srcDoc.Children) { KVLib.KeyValue val = k[key]; if (val == null) { continue; } string sval = val.GetString(); if (!foundValues.Contains(sval)) { foundValues.Add(sval); } } KVLib.KeyValue outDoc = new KVLib.KeyValue("PossibleValues"); int count = 0; foreach (string s in foundValues) { outDoc += new KVLib.KeyValue(count.ToString()) + s; count++; } File.WriteAllText(key + ".txt", outDoc.ToString()); }