#realJSOP
Бросьте коллекцию строк в один из этих двух методов расширения, а затем установите MyTextBox.Текст к возвращаемому значению.
public static class Extender
{
public static string Delimited(this IEnumerable<string> list, string separator)
{
// sanity check to make sure separator has been specified. If you don't care, comment out
// this statement. If you're rather throw an exception, change the code appropriately.
separator = (string.IsNullOrEmpty(separator)) ? "," : separator;
StringBuilder result = new StringBuilder();
foreach (string item in list)
{
result.AppendFormat("{0}{1}", (result.Length == 0) ? "" : separator, item);
}
return result.ToString();
}
public static string Delimited(this IEnumerable<string> list, char separator)
{
return list.Delimited(separator.ToString());
}
}
Пример использования:
string[] stringArray = new string[] { "1", "2", "3" };
List<string> stringList = new List<string>() { "4", "5", "6" };
string x = stringArray.Delimited(",");
string y = stringList.Delimited(';');
Вы можете дополнительно изменить методы, чтобы принять любой тип, включая сложные типы, и даже указать, какое свойство в объекте должно быть разделено. Я оставляю это как упражнение для программиста.
Ах, черт возьми, я дам вам и общую версию тоже. Имейте в виду, что если вы бросите в эти версии метода что-либо, кроме встроенных типов, вы получите обратно только имя класса (если, конечно, ваш объект не переопределяет имя класса).
ToString()
метод).
public static string Delimited<T>(this IEnumerable<T> list, string separator)
{
StringBuilder result = new StringBuilder();
foreach (T item in list)
{
result.AppendFormat("{0}{1}", (result.Length == 0) ? "" : separator, item.ToString());
}
return result.ToString();
}
public static string Delimited<T>(this IEnumerable<T> list, char separator)
{
return list.Delimited(separator.ToString());
}
Если вы хотите по-настоящему увлечься сложными объектами, вы можете либо использовать отражение для изучения свойств объекта и выполнить всю неприятную рекурсию, необходимую для обработки вложенных сложных объектов, либо просто десериализовать объект в формат json и повторить свойства таким образом.
Программирование-это весело!
Richard Deeming
Если вы используете последнюю версию .NET, вы можете упростить эти методы расширения:
public static string Delimited<T>(this IEnumerable<T> list, string separator = ",")
{
return string.Join(separator, list);
}
public static string Delimited(this IEnumerable<string> list, string separator = ",")
{
return string.Join(separator, list);
}