private static Capability <string> AsDisplayNames <T>(Capability <T> info, NameConverter <T> converter) { var res = AsDisabledCapability(info); if (res != null) { return(res); } var mCandidates = new List <string>(); foreach (T val in info.Candidates) { mCandidates.Add(converter.Invoke(val)); } return(new Capability <string> { Current = converter.Invoke(info.Current), Candidates = mCandidates }); }