So, I recently contributed some code to the dnpextensions project to allow easily concatenation of the contents of an IEnumerable<T> into a string using a specified separator (which defaults to a comma). Thought I'd post it here in case anyone might find it useful:
/// <summary> /// Concatenate a list of items using the provided separator. /// </summary> /// <param name="items">An enumerable collection of items to concatenate.</param> /// <param name="separator">The separator to use for the concatenation (defaults to ",").</param> /// <param name="formatString">An optional string formatter for the items in the output list.</param> /// <returns>The enumerable collection of items concatenated into a single string.</returns> /// <example> /// <code> /// List<double> doubles = new List<double>() { 123.4567, 123.4, 123.0, 4, 5 }; /// string concatenated = doubles.ConcatWith(":", "0.00"); // concatenated = 123.46:123.40:123.00:4.00:5.00 /// </code> /// </example> public static string ConcatWith<T>(this IEnumerable<T> items, string separator = ",", string formatString = "") { if (items == null) throw new ArgumentNullException("items"); if (separator == null) throw new ArgumentNullException("separator"); // shortcut for string enumerable if (typeof(T) == typeof(string)) { return string.Join(separator, ((IEnumerable<string>)items).ToArray()); } if (string.IsNullOrEmpty(formatString)) { formatString = "{0}"; } else { formatString = string.Format("{{0:{0}}}", formatString); } return string.Join(separator, items.Select(x => string.Format(formatString, x)).ToArray()); }