public static void AppendResults (List<string> results, string prefix, IEnumerable<string> names)
{
foreach (string name in names) {
if (name == null)
continue;
if (prefix != null && !name.StartsWith (prefix))
continue;
if (results.Contains (name))
continue;
if (prefix != null)
results.Add (name.Substring (prefix.Length));
else
results.Add (name);
}
}