Voici ce que je ferais:
public static IEnumerable<string> EnumerateByLength(this string text, int length) {
int index = 0;
while (index < text.Length) {
int charCount = Math.Min(length, text.Length - index);
yield return text.Substring(index, charCount);
index += length;
}
}
Cette méthode permettra l'exécution différée (qui n'a pas vraiment d'importance sur est immuable la classe comme string
, mais il est intéressant de noter).
Alors si vous voulez une méthode pour remplir un tableau pour vous, vous pourriez avoir:
public static string[] SplitByLength(this string text, int length) {
return text.EnumerateByLength(length).ToArray();
}
La raison pour laquelle je voudrais aller avec le nom de l' EnumerateByLength
plutôt SplitByLength
pour le "noyau" de la méthode est qu' string.Split
renvoie un string[]
, donc dans mon esprit il y a la priorité pour les méthodes dont le nom commence par Split
de retour des tableaux.
C'est juste moi, si.