public void Run() { Dbg("Menu : LinkItem<String, String>", GetMenus()); IEnumerable <NotificationUser> users = GetUsers(); String delimitedString = NameValueItemExtensions.AsDelimitedString(users, u => u.Name, u => u.Email); Dbg("Delimited String", delimitedString); Dbg("NameValueList", NameValueItemExtensions.AsNameValueList(delimitedString)); IList <String> emails = users .Where(u => !String.IsNullOrEmpty(u.Email)) .Select(u => u.Email.ToLowerInvariant()) .GroupBy(e => e).Select(g => g.First()) .ToList(); Dbg("ExDelimitedString", NameValueItemExtensions.AsExDelimitedString(emails, ";")); Dbg("ExDelimitedString", NameValueItemExtensions.AsExDelimitedString(emails, ";", s => s.ToString())); Dbg("ExDelimitedString", NameValueItemExtensions.AsExDelimitedString(emails, ";", s => NameValueItemExtensions.AsExDelimitedString(s, ",", ss => ss.ToString()))); Dbg("ExDelimitAggregateedString", emails.Aggregate(String.Empty, (p, nxt) => p + (p == String.Empty ? String.Empty : ";") + nxt)); Dbg("ExDelimitedString", NameValueItemExtensions.AsExDelimitedString(users, ";", ",", u => u.Name, u => u.Email)); Dbg("ExDelimitedString", NameValueItemExtensions.AsExDelimitedString(users, ";", ",", u => u.Name, u => u.Email, u => u.Name, u => u.Name)); }
public static String AsDelimitedString <T>(IEnumerable <T> dataList, Func <T, String> nameSelector, Func <T, String> valueSelector) where T : class { return(NameValueItemExtensions.AsDelimitedString(NameValueItemExtensions.AsNameValueList(dataList, nameSelector, valueSelector))); }