2012-05-10 18 views
10

C#, jeśli mają List<MyObj> gdzie MyObj jest klasa zwyczaj z zamienione na ToString() sposób tak, że każda MyObj obiektu na liście mogą być łatwo przekształcone do łańcucha.string.join na listę obiektów

Jak mogę dołączyć ten List<MyObj> z ogranicznikiem, na przykład potoku (|) do pojedynczego ciągu.

Tak więc, gdybym miał 3 obiekty MyObj, których metody ToString wytworzyłyby odpowiednio AAA, BBB, CCC. Stworzyłbym pojedynczy ciąg: AAA | BBB | CCC.

Aby uzyskać listę prostszych typów, takich jak List<string>, wykonuję to po prostu jako: String.Join("|",myList.ToArray());. Czy istnieje sposób, aby zrobić coś podobnego do tego? Czy jestem zmuszony do iteracji nad Listą Obiektów i użycia Konstruktora Ciągów do dołączania ToString każdego obiektu na liście razem?

Odpowiedz

33

W .NET 4, można po prostu użyć:

var x = string.Join("|", myList); 

.NET 3.5 nie mieć tyle przeciążeń dla string.Join choć - trzeba wykonać konwersję ciąg i włączyć go do tablicy wyraźnie:

var x = string.Join("|", myList.Select(x => x.ToString()).ToArray()); 

Porównaj przeciążeń dostępny:

+0

Dzięki, dokładnie informacje, których potrzebowałem. – user17753

Powiązane problemy