internal static string ConcatenatedToString(object value) {
Type t = value.GetType();
string stringValue = string.Empty;
if (t == typeof(IEnumerable) && t != typeof(System.String)) {
StringBuilder bldr = new StringBuilder();
IEnumerator enumerator = (value as IEnumerable).GetEnumerator();
if (enumerator.MoveNext()) {
bldr.Append("{");
Object cur = enumerator.Current;
if (cur is IFormattable) {
bldr.Append( ((IFormattable)cur).ToString("", CultureInfo.InvariantCulture) );
}
else {
bldr.Append(cur.ToString());
}
while(enumerator.MoveNext()) {
bldr.Append(" , ");
cur = enumerator.Current;
if (cur is IFormattable) {
bldr.Append( ((IFormattable)cur).ToString("", CultureInfo.InvariantCulture) );
}
else {
bldr.Append(cur.ToString());
}
}
bldr.Append("}");
stringValue = bldr.ToString();
}
}
else if (value is IFormattable) {
stringValue = ((IFormattable)value).ToString("", CultureInfo.InvariantCulture);
}
else {
stringValue = value.ToString();
}
return stringValue;
}