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 ?


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.


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


25

Verwenden von String.Join

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

Verwenden von Linq Aggregation

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

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!


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

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.


3

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

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

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

1

Versuchen

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

HTH


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;


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 #


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

0
categories = ['sprots', 'news'];
categoriesList = ", ".join(categories)
print(categoriesList)

Dies ist die Ausgabe: Sprossen, Nachrichten


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);
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.