8
votes

Comment convertir GUID [] à la chaîne?

quelque chose comme string.join (",", nouvelle chaîne [] {"A", "B"}); code>, mais pour GUID [] CODE>

var guids = new Guid[] { Guid.Empty, Guid.Empty };

var str = /* Magic */

// str = 00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000


0 commentaires

7 Réponses :


5
votes

Je pensais que cela fonctionnerait? XXX


4 commentaires

Vous avez oublié le , entre les GUID;)


Cela mettra une virgule supplémentaire à la fin.


Ok, j'ai essayé de résoudre le problème des virgules rapidement. C'est non testé. J'espère que ça marche :-)


En tant que suggestion, je voudrais ajouter la virgule avant d'ajouter le GUID, mais uniquement si StringBuilder.Length> 0



23
votes
var str = String.Join(",", guids.Select(g => g.ToString()).ToArray());

5 commentaires

Je serais curieux de savoir à quelle vitesse ça marche par rapport à d'autres méthodes. Je suppose que l'agrégat n'utilise pas string.concat pour allouer correctement la mémoire.


@Brunolm - Gardez simplement à l'esprit qu'avec les grandes listes de GUID, vous pourriez rencontrer des problèmes de perf) (beaucoup de concaténation à la chaîne). Dans ce cas, vous devrez peut-être passer à la méthode StringBuilder (et supprimer manuellement la dernière virgule).


Je vais, mais j'ai donc un retard. Attendez juste 3 minutes: p


@Yuriy Faktorovich - L'agrégat utilisera toute la méthode de concaténation que vous spécifiez.


@Justin Niessner: Droite, mais si vous ne transmettez que deux arguments à String.ConCat, cela n'aura aucune amélioration sur l'opérateur +. L'opérateur +, je crois, ne me citez pas sur ceci, appelle déjà le string.concat.



19
votes
String.Join(",", guids.Select(g => g.ToString()).ToArray());

1 commentaires

.NET 4 AJOUTÉ UNE MÉTHODE GENERIC REJOIGNEZ Vous pouvez simplement transmettre le tableau GUIDS SAN DES MODIFICATIONS



1
votes

Si votre cadre> = .NET 3.5

String.Join(",", (from g in guids select g.ToString()).ToArray())


0 commentaires

17
votes

.NET 4 Ajout d'un string.join (séparateur de chaîne, iEnumerable valeurs code>. Donc, dans .NET 4, cela fonctionnera juste:

String.Join(",", guids);


0 commentaires

1
votes
String.Join(",", Array.ConvertAll(guids, g => g.ToString()));

2 commentaires

Il semble que cette déclaration ne puisse pas passer la compilation dans VS2010?


Array.convertiplanToutes a besoin d'une classe qui implémente convertisseur , vous passez dans une méthode.



0
votes
//Convert string to List<string>    
List<string> guidList = your_string.Split(',').ToList<string>();

//Convert string to List<Guid>    
List<Guid> guidList = your_string.Split(',').ToList<string>().ConvertAll<Guid>(g => new Guid(g));

0 commentaires