2013-02-19 10 views
111

Mein Code ist wie folgt:Convert Liste in Comma-Separated String

public void ReadListItem() 
{ 
    List<uint> lst = new List<uint>() { 1, 2, 3, 4, 5 }; 
    string str = string.Empty; 
    foreach (var item in lst) 
     str = str + item + ","; 

    str = str.Remove(str.Length - 1); 
    Console.WriteLine(str); 
} 

Ausgang: 1,2,3,4,5

Was ist der einfachste Weg, um die List<uint> in eine kommagetrennte Zeichenfolge zu konvertieren?

+6

'String.Join' ist alles, was Sie brauchen. – asawyer

+6

'var csvString = String.Join (", ", lst);' sollte es tun. – Mithrandir

+2

Für alle, die dies wieder öffnen möchten, wenn es nicht zu lokal begrenzt ist, ist es ein Duplikat: http://stackoverflow.com/questions/799446/creating-a-comma-separated-list-from-iliststring-or-ienuerablestring –

Antwort

199

Viel Spaß!

Console.WriteLine(String.Join(",", new List<uint> { 1, 2, 3, 4, 5 })); 

String.Join eine Liste als zweiten Parameter übernehmen und alle Elemente verbinden, die als ersten Parameter in eine einzelne Zeichenfolge übergeben Zeichenfolge verwendet wird.

+9

. NET 3.5 und darunter müssen Sie Ihre Liste explizit in Array mit 'lst.ToArray()' umwandeln, da dort noch keine direkte Überlastung vorliegt. – Anton

53

Sie String.Join Methode verwenden, können Elemente kombinieren:

var str = String.Join(",", lst); 
23

Mit String.Join

string.Join<string>(",", lst); 

Mit LinqAggregation

lst .Aggregate((a, x) => a + "," + x); 
+1

Ich habe eine Liste vom Typ int32. Wenn ich die angegebene Aggregatfunktion verwende, lautet die Meldung "Kann den Lambda-Ausdruck nicht in den Delegattyp 'System.Func ' konvertieren, da einige der Rückgabetypen im Block nicht implizit in den Delegattyp konvertiert werden können" \t "Typ kann nicht implizit konvertiert werden 'string' to 'int' " – Hari

+1

10 @Hari Sie müssen es in Zeichenfolgenwerte konvertieren, bevor Sie Aggragate in eine Zeichenfolge konvertieren. Sie können also Folgendes tun: list.Select (x => string.Format ("{0}: {1}", x.Key, x.Value)). Aggregate ((a, x) => a + " , "+ x); – bets

1

Versuchen

HTH

8

diese Folgen:

 List<string> name = new List<string>(); 

     name.Add("Latif"); 
     name.Add("Ram"); 
     name.Add("Adam"); 
     string nameOfString = (string.Join(",", name.Select(x => x.ToString()).ToArray())); 
2
  @{ var result = string.Join(",", @user.UserRoles.Select(x => x.Role.RoleName)); 
       @result 

      } 

ich in MVC Razor-Ansicht verwendet, zu bewerten und zu drucken alle durch Komma getrennt Rollen.

0

können Sie die Verwendung von Google-collections.jar machen, die eine Utility-Klasse namens Joiner

String commaSepString=Joiner.on(",").join(lst); 

oder

Sie StringUtils Klasse verwenden können, die Funktion join.To nutzen StringUtils Klasse aufgerufen hat , müssen Sie Common-lang3.jar

String commaSepString=StringUtils.join(lst, ','); 

als Referenz, siehe diesen Link http://techno-terminal.blogspot.in/2015/08/convert-collection-into-comma-separated.html

verwenden
2

Sie können das folgende Beispiel verwenden, um ein kommagetrenntes String-Array aus der Liste zu erhalten.

Beispiel:

List<string> testList= new List<string>(); 
testList.Add("Apple"); // Add string 1 
testList.Add("Banana"); // 2 
testList.Add("Mango"); // 3 
testList.Add("Blue Berry"); // 4 
testList.Add("Water Melon"); // 5 

string JoinDataString = string.Join(",", testList.ToArray()); 
1

Sie können String.Join dafür verwenden, wenn Sie .NET Framework> 4.0 verwenden.

var result= String.Join(",", yourList); 
1

Wir wie diese separate Liste enties durch Komma

string stations = 
haul.Routes != null && haul.Routes.Count > 0 ?String.Join(",",haul.Routes.Select(y => 
y.RouteCode).ToList()) : string.Empty; 
0
static void Main(string[] args){   
List<string> listStrings = new List<string>() { "C#", "Asp.Net", "SQL Server", "PHP", "Angular" }; 
string CommaSeparateString = GenerateCommaSeparateStringFromList(listStrings); 
Console.Write(CommaSeparateString); 
Console.ReadKey();} 
private static string GenerateCommaSeparateStringFromList(List<string> listStrings){return String.Join(",", listStrings);} 

Convert a list of string to comma separated string C#

4

Wenn Sie eine Sammlung von ints versuchen:

List<int> customerIds= new List<int>() { 1,2,3,3,4,5,6,7,8,9 }; 

Sie string.Join verwenden können, um eine Zeichenfolge zu erhalten:

var result = String.Join(",", customerIds);