Есть ли способ взять список и преобразовать его в строку, разделенную запятыми?
Я знаю, что могу просто зациклить и построить его, но почему-то я думаю, что некоторые из вас, ребята, могут это сделать более круто?
Я действительно хочу изучить эти типы «уловок», поэтому, пожалуйста, объясните или дайте ссылку на документацию по методу, который вы используете.
c#
collections
mrblah
источник
источник
Простое решение
Я использовал это только сейчас в своем коде, работая очень быстро.
источник
источник
Примерно миллиард решений чуть более сложной версии этой проблемы, многие из которых медленные, содержат ошибки или даже не компилируются, см. В комментариях к моей статье на эту тему:
http://blogs.msdn.com/ericlippert/archive/2009/04/15/comma-quibbling.aspx
и комментарий StackOverflow:
Вызов Эрика Липперта - «придираться к запятым», лучший ответ?
источник
Для большей крутизны я бы сделал это методом расширения для IEnumerable <T>, чтобы он работал на любом IEnumerable:
Используйте его следующим образом:
источник
return string.Join(delim, self);
Кажется достаточно быстрым.
источник
Моя «умная» запись:
Просто не придумал, как условно добавить запятую.
источник
Select
с побочными эффектами в лямбде. В этом случае вы даже не используетеy
, так что ваш,Select
по сути, простоforeach
- так что напишите его как таковой.Select
какforeach
проходит мимо «интересным» и в, ну, «злоупотребление». Более интересным подходом здесь было бы использованиеEnumerable.Aggregate
сStringBuilder
в качестве начального значения - попробуйте.вы можете использовать библиотеку System.Linq; Это более эффективно:
источник