Notez que les new string(null)rendements String.Emptyet nonnull ! Si vous souhaitez conserver null, vous pouvez créer une méthode d'extension static string ToStringSafe(this char[] buf) { return buf == null ? null : new string(buf); }.
Skod
8
@Skod: Étant donné qu'il est impossible pour une "nouvelle" expression de renvoyer une valeur autre qu'une instance d'objet, cela ne devrait surprendre personne.
Matti Virkkunen
@MattiVirkkunen: Lancer une exception est également une chose raisonnable à faire. C'est le comportement que j'aurais deviné en passant null au constructeur de chaîne.
Charles Taylor
81
Utilisez le constructeur de chaîne qui accepte un char []
Si seulement vous aviez été trois minutes plus rapides, vous auriez répondu avant que la question ne soit posée!
DCastenholz
1
Oubliez les minutes. C'est juste 17 secondes. Ma réponse juste au-dessus est ma deuxième réponse la plus votée sur le site. En fait, je suis ici maintenant parce que quelqu'un vient de voter à nouveau, près de 10 ans plus tard. Et les deux réponses ne sont pas vraiment différentes ... mais la mienne a été publiée 17 secondes plus vite, et cela signifie une différence de 500 votes: /
Joel Coehoorn
35
char[] characters;...string s =newstring(characters);
char[] chars ={'a',' ','s','t','r','i','n','g'};string s =string.Join("", chars);//we get "a string"// or for fun:string s =string.Join("_", chars);//we get "a_ _s_t_r_i_n_g"
Utilisez le constructeur de chaîne qui accepte le chararray comme argument, la position de départ et la longueur du tableau. La syntaxe est donnée ci-dessous:
Je pense que c'est ce que je cherchais. Mais je ne connaissais aucune classe nommée CharArray. Pensiez-vous peut-être à quelque chose comme:char[] charArray = new char[5] { 'a', 'b', 'c', '\0', '\0' }; string charsAsString = new string(charArray, 0, 3); // only want part of array.
Suncat2000
CharArray n'est pas une classe, juste une variable de type char []
Dilip Nannaware
13
Une autre alternative
char[] c ={'R','o','c','k','-','&','-','R','o','l','l'};string s =String.Concat( c );Debug.Assert( s.Equals("Rock-&-Roll"));
new string(null)
rendementsString.Empty
et nonnull
! Si vous souhaitez conservernull
, vous pouvez créer une méthode d'extensionstatic string ToStringSafe(this char[] buf) { return buf == null ? null : new string(buf); }
.Utilisez le constructeur de chaîne qui accepte un char []
la source
la source
Une autre façon:
la source
string.Join
accepte uniquementstring[]
au lieu dechar[]
string.Join<char>("_", chars)
au lieu destring.Join("_", chars)
la source
Utilisez le constructeur de chaîne qui accepte le chararray comme argument, la position de départ et la longueur du tableau. La syntaxe est donnée ci-dessous:
la source
char[] charArray = new char[5] { 'a', 'b', 'c', '\0', '\0' }; string charsAsString = new string(charArray, 0, 3); // only want part of array.
Une autre alternative
la source