Convertir une liste en chaîne dans C #

Comment convertir une liste en chaîne de caractères en C #?

Lorsque j’exécute toSsortingng sur un object List, j’obtiens:

System.Collections.Generic.List`1 [System.Ssortingng]

Peut-être que vous essayez de faire

 ssortingng combindedSsortingng = ssortingng.Join( ",", myList.ToArray() ); 

Vous pouvez remplacer “,” par ce que vous voulez fractionner les éléments de la liste par.

Je vais aller avec mon instinct et supposer que vous voulez concaténer le résultat de l’appel ToSsortingng sur chaque élément de la liste.

 var result = ssortingng.Join(",", list.ToArray()); 

Si vous voulez quelque chose d’un peu plus complexe qu’une simple jointure, vous pouvez utiliser LINQ, par exemple

 var result = myList.Aggregate((total, part) => total + "(" + part.ToLower() + ")"); 

Prendra [“A”, “B”, “C”] et produira “(a) (b) (c)”

Ssortingng.Join(" ", myList) ou Ssortingng.Join(" ", myList.ToArray()) . Le premier argument est le séparateur entre les sous-chaînes.

 var myList = new List { "foo","bar","baz"}; Console.WriteLine(Ssortingng.Join("-", myList)); // prints "foo-bar-baz" 

Selon votre version de .NET, vous devrez peut-être utiliser ToArray () dans la liste en premier.

Vous pouvez utiliser ssortingng.Join :

 List list = new List() { "Red", "Blue", "Green" }; ssortingng output = ssortingng.Join(Environment.NewLine, list.ToArray()); Console.Write(output); 

Le résultat serait:

 Red Blue Green 

En alternative à Environment.NewLine, vous pouvez le remplacer par un séparateur de ligne de type chaîne de votre choix.

La méthode .ToSsortingng() pour les types de référence revient généralement à System.Object.ToSsortingng() moins que vous ne la System.Object.ToSsortingng() dans un type dérivé (éventuellement en utilisant des méthodes d’extension pour les types intégrés). Le comportement par défaut de cette méthode consiste à afficher le nom du type sur lequel elle est appelée. Donc, ce que vous voyez est le comportement attendu.

Vous pourriez essayer quelque chose comme ssortingng.Join(", ", myList.ToArray()); pour y parvenir. C’est une étape supplémentaire, mais il pourrait être ajouté à une méthode d’extension sur System.Collections.Generic.List pour le rendre un peu plus facile. Quelque chose comme ça:

 public static class GenericListExtensions { public static ssortingng ToSsortingng(this IList list) { return ssortingng.Join(", ", list); } } 

(Notez qu’il s’agit d’un code libre et non testé. Je n’ai pas de compilateur à scope de main pour le moment. Donc, vous voudrez essayer un peu.)

Vous avez une List – donc si vous voulez les concaténer, quelque chose comme

 ssortingng s = ssortingng.Join("", list); 

fonctionnerait (au moins en .NET 4.0). Le premier paramètre est le délimiteur. Donc, vous pouvez également délimiter les virgules, etc.

Vous pouvez également envisager d’utiliser SsortingngBuilder pour faire des concaténations en cours d’exécution, plutôt que de former une liste.

C’est difficile à dire, mais vous cherchez peut-être quelque chose comme:

 var mySsortingng = Ssortingng.Join(Ssortingng.Empty, myList.ToArray()); 

Cela appellera implicitement la méthode ToSsortingng () sur chacun des éléments de la liste et les concaténera.

Si vous souhaitez transformer les éléments d’une liste en une longue chaîne longue, procédez comme Ssortingng.Join("", myList) : Ssortingng.Join("", myList) . Certaines anciennes versions du framework ne vous permettent pas de transmettre un IEnumerable en tant que second paramètre, vous devrez peut-être convertir votre liste en un tableau en appelant .ToArray ().

La réponse directe à votre question est Ssortingng.Join comme d’autres l’ont mentionné.

Cependant, si vous avez besoin de manipulations, vous pouvez utiliser Aggregate

  List employees = new List(); employees.Add("e1"); employees.Add("e2"); employees.Add("e3"); ssortingng employeesSsortingng = "'" + employees.Aggregate((x, y) => x + "','" + y) + "'"; Console.WriteLine(employeesSsortingng); Console.ReadLine();