Quelle est la manière la plus efficace de concaténer des chaînes?
StringBuilder
les cas d'utilisation peuvent être trouvées ici .
String.Format
sur 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 StringBuilder
sur 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.Join
ré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.Concat
et String.Join
peut tous deux agir sur des tableaux, mais String.Join
est en fait plus rapide. Apparemment, String.Join
est assez sophistiqué et plus optimisé que String.Concat
, en partie parce qu'il fonctionne de la même manière StringBuilder
qu'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.Join
né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.Concat
construire des tableaux pour leurs constituants de toute façon. Par conséquent, la création manuelle d'un tableau et son alimentation String.Join
est relativement plus rapide ... cependant, StringBuilder
surpasse toujours String.Join
de 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.Join
si vous avez pour créer un tableau pour elle sur place.