C # en boucle dans un tableau
Je suis une boucle dans un tableau de chaînes de caractères, tels que (1/12/1992 apple camion 12/10/10 orange de vélos). La longueur du tableau sera toujours divisible par 3. J'ai besoin d'une boucle sur le tableau et prenez les 3 premiers articles (je vais les insérer dans une base de données), puis prenez la prochaine 3 et ainsi de suite et ainsi de suite jusqu'à ce que tous d'entre eux ont été passés.
//iterate the array
for (int i = 0; i < theData.Length; i++)
{
//grab 3 items at a time and do db insert, continue until all items are gone. 'theData' will always be divisible by 3.
}
source d'informationauteur Matt | 2010-03-09
Vous devez vous connecter pour publier un commentaire.
Juste incrémenter
i
par 3 à chaque étape:Pour répondre à certains commentaires, c'est une donnée qui
theData.Length
est un multiple de 3, donc il n'est pas nécessaire de vérifier lestheData.Length-2
comme un upperbound. Ce ne serait que le masque des erreurs dans les conditions préalables.i++
est le standard de l'utilisation d'une boucle, mais pas uniquement. Essayez l'incrémentation par 3 à chaque fois:Pas trop difficile. Juste incrémenter le compteur de la
for
boucle par 3 à chaque itération et de compenser l'indexeur pour obtenir le lot de 3 à la fois:Si la longueur du tableau n'était pas garuanteed être un multiple de trois, vous devez vérifier la limite supérieure avec
theData.Length - 2
à la place.Votre boucle for n'a pas besoin d'suffit d'en ajouter un. Vous pouvez faire une boucle par trois.
Fondamentalement, vous êtes juste en utilisant des indices pour saisir les valeurs de votre tableau. Un point à noter ici, je ne suis pas de la vérification pour voir si vous allez au-delà de la fin de votre tableau. Assurez-vous de faire la vérification des limites!
Cela devrait fonctionner:
J'ai été downvoted pour cette réponse une fois. Je suis sûr que c'est lié à l'utilisation de theData.Longueur de la upperbound. Le code est fonctionne bien parce que la matrice est garanti d'être un multiple de trois, comme la question des états. Si cette garantie n'était pas en place, vous auriez besoin de vérifier la limite supérieure avec theData.Durée - 2 à la place.
Ici est un plus solution générale: