2010-08-12 9 views

risposta

92

In .NET 2/3

var csv = string.Join(", ", list.Select(i => i.ToString()).ToArray()); 

o (in .NET 4,0)

var csv = string.Join(", ", list); 
+0

Non funziona se 'list' è una lista di numeri interi come specificato nella domanda. – Timwi

+0

@Timwi - in realtà, lo fa in .NET 4, però, ho dimenticato il fatto che non hai più bisogno di un array, qualsiasi enumerabile funzionerà. – tvanfosson

+0

Sì, ero disinformato. Downvote retratto. – Timwi

3

E 'questo quello che stai cercando?

// Can be int[], List<int>, IEnumerable<int>, ... 
int[] myIntegerList = ...; 

string myCSV = string.Join(", ", myIntegerList.Select(i => i.ToString()).ToArray()); 

A partire con C# 4.0, il MumboJumbo in più non è più necessaria, tutto funziona automaticamente:

// Can be int[], List<int>, IEnumerable<int>, ... 
int[] myIntegerList = ...; 

string myCSV = string.Join(", ", myIntegerList); 
+0

In effetti, la lista dovrebbe essere 'IEnumerable' perché tutti gli altri contenitori (che hai menzionato e non solo) ereditano' IEnumerable' e 'Select' è un metodo di' IEnumerable' – abatishchev

+0

@abatishchev: Gli altri contenitori * implement * 'IEnumerable' , corretta. Il resto di ciò che hai detto che non va, in particolare la "lista dovrebbe essere' IEnumerable' ", ma anche" 'Select' è un metodo di' IEnumerable' "(e anche se tu avessi detto' IEnumerable ', sarebbe ancora essere in errore). È un metodo di estensione. – Timwi

+0

In realtà, anche la selezione come stringa non è necessaria poiché 'Join (stringa, IEnumerable )' convertirà automaticamente ogni elemento nell'enumerabile in una stringa. – tvanfosson

2
string csv = String.Join(", ", list.Select(i=> i.ToString()).ToArray()); 
+0

Tecnicamente, questa risposta non produce l'output atteso come specificato nella domanda ;-) – Timwi

+0

OK, ho aggiunto lo spazio in più .... –

0
String.Join(", ", list); //in .NET 4.0 

e

String.Join(", ", list   
    .Select(i => i.ToString()).ToArray()) //in .NET 3.5 and below 
+0

Perché il downvote? –

+0

la tua seconda affermazione non ha senso. ti fornirà un array di stringhe con un elemento. –

+0

@Scott ha avuto una parata aggiuntiva dal mio test, risolto. –

Problemi correlati