10 ответов:
может быть, вы пытаетесь сделать
string combindedString = string.Join( ",", myList.ToArray() );вы можете заменить", " на то, что вы хотите разделить элементы в списке.
Я собираюсь пойти с моим чувством кишки и предположить, что вы хотите объединить результат вызова
ToStringна каждом элементе списка.var result = string.Join(",", list.ToArray());
Если вы хотите что-то немного более сложное, чем простое соединение, вы можете использовать LINQ, например
var result = myList.Aggregate((total, part) => total + "(" + part.ToLower() + ")");возьмет ["A", "B", "C"] и произведет " (a)(b)(c)"
вы могли бы использовать строку.Присоединяйтесь:
List<string> list = new List<string>() { "Red", "Blue", "Green" }; string output = string.Join(Environment.NewLine, list.ToArray()); Console.Write(output);результат будет такой:
Red Blue Greenкак альтернатива окружающая среда.Новая строка вы можете заменить его строковым разделителем строк по вашему выбору.
String.Join(" ", myList)илиString.Join(" ", myList.ToArray()). Первый аргумент-это разделитель между подстроками.var myList = new List<String> { "foo","bar","baz"}; Console.WriteLine(String.Join("-", myList)); // prints "foo-bar-baz"В зависимости от вашей версии .NET вам может потребоваться сначала использовать ToArray() в списке..
The
.ToString()метод для ссылочных типов обычно разрешается обратно вSystem.Object.ToString()Если вы не переопределить его в производном типе (возможно, используя методы расширения для встроенных типов). Поведение по умолчанию для этого метода заключается в выводе имени типа, на котором он вызывается. Так что вы видите-это ожидаемое поведение.вы могли бы попробовать что-то вроде
string.Join(", ", myList.ToArray());для достижения этой цели. Это дополнительный шаг, но он может быть помещен в метод расширения наSystem.Collections.Generic.List<T>чтобы сделать это немного проще. Что-то вроде этого:public static class GenericListExtensions { public static string ToString<T>(this IList<T> list) { return string.Join(", ", list); } }(обратите внимание, что это свободный и непроверенный код. У меня нет компилятора под рукой на данный момент. Поэтому вы захотите немного поэкспериментировать с ним.)
у вас
List<string>- Так что если вы хотите, чтобы они сцеплены, что-то вродеstring s = string.Join("", list);будет работать (по крайней мере, в .NET 4.0). Первый параметр-это разделитель. Таким образом, вы также можете разделять запятыми и т. д.
вы также можете посмотреть на использование StringBuilder для выполнения конкатенаций, а не для формирования списка.
трудно сказать, но, возможно, вы ищете что-то вроде:
var myString = String.Join(String.Empty, myList.ToArray());это неявно вызовет метод ToString () для каждого из элементов в списке и объединит их.
Если вы хотите повернуть элементы в списке в большую длинную строку, сделайте следующее:
String.Join("", myList). Некоторые старые версии фреймворка не позволяют передавать IEnumerable в качестве второго параметра, поэтому вам может потребоваться преобразовать свой список в массив путем вызова .ToArray ().
прямой ответ на ваш вопрос
String.JoinКак уже упоминалось.однако, если вам нужны некоторые манипуляции, вы можете использовать
AggregateList<string> employees = new List<string>(); employees.Add("e1"); employees.Add("e2"); employees.Add("e3"); string employeesString = "'" + employees.Aggregate((x, y) => x + "','" + y) + "'"; Console.WriteLine(employeesString); Console.ReadLine();
Comments