Quelle est la manière la plus efficace de concaténer des chaînes?
StringBuilderles cas d'utilisation peuvent être trouvées ici .
String.Formatsur les stéroïdes. Ce qui, en termes de performances, est un tout petit peu plus lent sur une ligne que +et String.Concat, mais beaucoup mieux que ceux, bien que plus lent que StringBuildersur plusieurs appels. Pratiquement parlant, les différences de performances sont telles que, si je devais choisir une seule façon de concaténer, je choisirais les interpolations de chaînes en utilisant $... Si deux façons, puis ajouter StringBuilderà ma boîte à outils. Avec ces deux façons, vous êtes prêt.
String.Joinréponse ci-dessous ne rend pas +justice et est, en pratique, une mauvaise façon de concaténer des cordes, mais elle est étonnamment rapide en termes de performances. La réponse est intéressante. String.Concatet String.Joinpeut tous deux agir sur des tableaux, mais String.Joinest en fait plus rapide. Apparemment, String.Joinest assez sophistiqué et plus optimisé que String.Concat, en partie parce qu'il fonctionne de la même manière StringBuilderqu'il calcule d'abord la longueur de la chaîne, puis construit la chaîne bénéficiant de ces connaissances à l'aide de UnSafeCharBuffer.
String.Joinnécessite aussi de construire un tableau qui semble inefficace sur le plan des ressources, n'est-ce pas? ... Il s'avère que +et String.Concatconstruire des tableaux pour leurs constituants de toute façon. Par conséquent, la création manuelle d'un tableau et son alimentation String.Joinest relativement plus rapide ... cependant, StringBuildersurpasse toujours String.Joinde toutes les manières pratiques alors qu'il $n'est que légèrement plus lent et beaucoup plus rapide sur les longues chaînes ... sans oublier qu'il est maladroit et laid à utiliser String.Joinsi vous avez pour créer un tableau pour elle sur place.