Czy istnieje sposób, aby wziąć Listę i przekonwertować ją na ciąg oddzielony przecinkami?
Wiem, że mogę to po prostu zapętlić i zbudować, ale jakoś myślę, że niektórzy z was to fajniejszy sposób na zrobienie tego?
Naprawdę chcę nauczyć się tego typu „sztuczek”, więc proszę wyjaśnij lub umieść link do dokumentacji na temat używanej metody.
c#
collections
mrblah
źródło
źródło
Proste rozwiązanie to
Użyłem go właśnie teraz w swoim kodzie, działając przyjemnie.
źródło
źródło
W przypadku około jednego miliarda rozwiązań nieco bardziej skomplikowanej wersji tego problemu - z których wiele jest powolnych, zawiera błędy lub nawet się nie kompiluje - zobacz komentarze do mojego artykułu na ten temat:
http://blogs.msdn.com/ericlippert/archive/2009/04/15/comma-quibbling.aspx
i komentarz StackOverflow:
Wyzwanie Erica Lipperta „sprzeczka przecinkami”, najlepsza odpowiedź?
źródło
Dla dodatkowego chłodu uczyniłbym to metodą rozszerzającą w IEnumerable <T>, tak aby działała na dowolnym IEnumerable:
Użyj go w następujący sposób:
źródło
return string.Join(delim, self);
Wydaje się dość szybko.
źródło
Mój „sprytny” wpis:
Po prostu nie wymyśliłem, jak warunkowo dodać przecinek.
źródło
Select
z efektami ubocznymi w lambdzie. W tym przypadku nawet nie używaszy
, więcSelect
zasadniczo jest to po prostuforeach
- więc zapisz to jako takie.Select
jakforeach
to minęło, jest „interesujące” i przechodzi w… Bardziej interesujące podejście tutaj byłoby użyćEnumerable.Aggregate
zeStringBuilder
jako wartość seed - spróbuj tego.możesz użyć, biblioteki System.Linq; Jest bardziej wydajna:
źródło