ReplaceAt(int index, int length, string replace)
Voici une méthode d'extension qui n'utilise ni StringBuilder ni Substring. Cette méthode permet également à la chaîne de remplacement de dépasser la longueur de la chaîne source.
//// str - the source string
//// index- the start location to replace at (0-based)
//// length - the number of characters to be removed before inserting
//// replace - the string that is replacing characters
public static string ReplaceAt(this string str, int index, int length, string replace)
{
return str.Remove(index, Math.Min(length, str.Length - index))
.Insert(index, replace);
}
Lorsque vous utilisez cette fonction, si vous souhaitez que l'ensemble de la chaîne de remplacement remplace autant de caractères que possible, définissez la longueur sur la longueur de la chaîne de remplacement :
"0123456789".ReplaceAt(7, 5, "Hello") = "0123456Hello"
Sinon, vous pouvez spécifier la quantité de caractères qui seront supprimés :
"0123456789".ReplaceAt(2, 2, "Hello") = "01Hello456789"
Si vous spécifiez que la longueur est de 0, cette fonction agit comme la fonction d'insertion :
"0123456789".ReplaceAt(4, 0, "Hello") = "0123Hello456789"
Je suppose que c'est plus efficace puisque la classe StringBuilder ne doit pas être initialisée et qu'elle utilise des opérations plus basiques. Veuillez me corriger si je me trompe :)
0 votes
@TotZam - veuillez vérifier les dates. Ce site l'un est plus ancien que celui que vous avez lié.
0 votes
@ToolmakerSteve Je regarde généralement la qualité de la question et des réponses, pas les dates, comme il a été dit de le faire. aquí . Dans ce cas, il semble que j'aie fait une erreur et que j'aie cliqué sur la mauvaise question à marquer comme doublon, puisque la qualité de cette question est manifestement meilleure, et j'ai donc marqué l'autre question.
0 votes
@TotZam - ah, je ne connaissais pas cette recommandation - merci de l'avoir signalée. (Bien qu'il soit déroutant de voir quelque chose de plus ancien signalé comme un doublon de quelque chose de plus récent, donc dans un tel cas, il vaudrait la peine d'expliquer explicitement que vous marquez comme doublon une question PLUS ANCIENNE, parce que celle liée a de meilleures réponses).