Liste in durch Kommas getrennte Zeichenfolge konvertieren

158

Mein Code ist wie folgt:

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);
}

Ausgabe: 1,2,3,4,5

Was ist die einfachste Möglichkeit, die List<uint>Zeichenfolge in eine durch Kommas getrennte Zeichenfolge umzuwandeln ?

SKJ
quelle
8
String.Joinist alles, was du brauchst.
Asawyer
8
var csvString = String.Join(",", lst);Sollte es tun.
Mithrandir
2
Für alle, die dies wieder öffnen möchten
Tim Schmelter

Antworten:

319

Genießen!

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

Erster Parameter: ","
Zweiter Parameter:new List<uint> { 1, 2, 3, 4, 5 })

String.Join nimmt eine Liste als zweiten Parameter und verbindet alle Elemente unter Verwendung der als erster Parameter übergebenen Zeichenfolge zu einer einzigen Zeichenfolge.

Richard Dalton
quelle
11
In .NET 3.5 und darunter müssen Sie Ihre Liste explizit in ein Array mit konvertieren lst.ToArray(), da dort noch keine direkte Überlastung vorliegt.
Anton
69

Mit der String.Join- Methode können Sie Elemente kombinieren:

var str = String.Join(",", lst);
Sergey Berezovskiy
quelle
das funktioniert bei mir nicht. Es wird der Name der Sammlung und nicht die Objekte in der Liste erstellt.
Rani Radcliff
25

Verwenden von String.Join

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

Verwenden von Linq Aggregation

lst .Aggregate((a, x) => a + "," + x);
MuhammadHani
quelle
1
Ich habe eine Liste vom Typ int32. Wenn ich die von Ihnen erwähnte Aggregatfunktion verwende, heißt es "Lambda-Ausdruck kann nicht in Delegatentyp 'System.Func <int, int, int>' konvertiert werden, da einige der Rückgabetypen im Block nicht implizit in den Delegatrückgabetyp konvertierbar sind" und "Typ 'Zeichenfolge' kann nicht implizit in 'int' konvertiert werden"
Hari
1
@ Hari Sie müssen es in Zeichenfolgenwerte konvertieren, bevor Sie zu Zeichenfolgen aggragieren. Sie können also Folgendes tun: list.Select (x => string.Format ("{0}: {1}", x.Key, x.Value)). Aggregate ((a, x) => a + " , "+ x);
Wetten
11

Wenn Sie eine Sammlung von Ints haben:

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

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

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

Genießen!

Rejwanul Reja
quelle
9

Folge dies:

       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()));
Salim Latif Waigaonkar
quelle
4
          @{  var result = string.Join(",", @user.UserRoles.Select(x => x.Role.RoleName));
              @result

           }

Ich habe in MVC Razor View alle durch Kommas getrennten Rollen ausgewertet und gedruckt.

Syed Qasim Abbas
quelle
3

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

var result= String.Join(",", yourList);
Abdus Salam Azad
quelle
2

Im folgenden Beispiel finden Sie Informationen zum Abrufen eines durch Kommas getrennten Zeichenfolgenarrays aus der Liste.

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());
Gaurang Dhandhukiya
quelle
1

Versuchen

Console.WriteLine((string.Join(",", lst.Select(x=>x.ToString()).ToArray())));

HTH

Jay
quelle
1

Wir können so versuchen, Listeneinträge durch Komma zu trennen

string stations = 
haul.Routes != null && haul.Routes.Count > 0 ?String.Join(",",haul.Routes.Select(y => 
y.RouteCode).ToList()) : string.Empty;
Ajeet Singh
quelle
0

Sie können google-collection.jar verwenden, das eine Dienstprogrammklasse namens Joiner hat

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

oder

Sie können die StringUtils-Klasse mit der Funktion join verwenden. Um die StringUtils-Klasse verwenden zu können, müssen Sie common-lang3.jar verwenden

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

Referenz finden Sie unter diesem Link http://techno-terminal.blogspot.in/2015/08/convert-collection-into-comma-separated.html

satish
quelle
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);}

Konvertieren Sie eine Liste von Zeichenfolgen in durch Kommas getrennte Zeichenfolge C #

Hitesh Kumar
quelle
0

Sie können ToString () auch überschreiben, wenn Ihr Listenelement mehr als eine Zeichenfolge enthält

public class ListItem
{

    public string string1 { get; set; }

    public string string2 { get; set; }

    public string string3 { get; set; }

    public override string ToString()
    {
        return string.Join(
        ","
        , string1 
        , string2 
        , string3);

    }

}

um csv string zu bekommen:

ListItem item = new ListItem();
item.string1 = "string1";
item.string2 = "string2";
item.string3 = "string3";

List<ListItem> list = new List<ListItem>();
list.Add(item);

string strinCSV = (string.Join("\n", list.Select(x => x.ToString()).ToArray()));
ACJ
quelle
0
categories = ['sprots', 'news'];
categoriesList = ", ".join(categories)
print(categoriesList)

Dies ist die Ausgabe: Sprossen, Nachrichten

sudharsanan r
quelle
0

Sie können Listenelemente durch ein Komma wie folgt trennen:

//phones is a list of PhoneModel
var phoneNumbers = phones.Select(m => m.PhoneNumber)    
                    .Aggregate(new StringBuilder(),
                        (current, next) => current.Append(next).Append(" , ")).ToString();

// Remove the trailing comma and space
if (phoneNumbers.Length > 1)
    phoneNumbers = phoneNumbers.Remove(phoneNumbers.Length - 2, 2);
Fateme Mirjalili
quelle