J'essaie de reproduire une simple action d'accumuler une valeur une quantité de fois. Donc, quelque chose comme valeur 4 prendre 10 fois serait: [0,4,8,12,16,20,24,28,32,36]. Qu'est-ce que je fais mal?
5 Réponses :
Vous ne changez pas la valeur de valeur code> de sorte que ce sera toujours l'original.
Ajouter code> Ajoute l'élément à la fin de la liste. P>
Essayez ceci:
public static IList SumValues(int value, int times) { List<int> sums = new List<int>(); for (int i = 0; i < times; i++) { sums.Add(i*value); } return sums; }
@LJumbor Cela ne fonctionnerait pas non plus, je pense que vous voulez dire SUMS.Ajouter (valeur * i).
Bien sûr. Je suis trop fatigué, devriez aller au lit :) corrigé ma réponse.
@LJumbor Cela ne fonctionnerait pas juste à cause de la commande?
Ce n'était pas l'ordre.
public static IList SumValues(int value, int times) // you need to define the type for the return list { List<object> sums = new List<object>(); // you could probably use List<int> here instead of object, unless there's some logic outside of this function that treats them as objects int incrementedValue = 0; for (int i = 0; i < times; i++) // i++ is the same as i = i+1, but a little cleaner { sums.Add(incrementedValue); incrementedValue += value; } return sums; } This will always include '0' in the list
Je ne suis pas vraiment sûr, mais essayez d'utiliser SUMS.Ajouter (valeur * i); au lieu de vos sums.add (valeur); p>
Conseil: Dans votre cycle, utilisez i ++ au lieu de i = i + 1. Il est plus courant et aussi plus rapide de taper. P>
Je ne sais pas pourquoi vous créez une liste de si vous en avez besoin dans une liste violon ici P> p> objet code> lorsque c'est très clairement
int code> de la liste. J'ai changé le code pour renvoyer un
ienumerable
.tolist () code> ou
.toarray () code>): p>
Merci beaucoup pour votre retour! Je suis un débutant à C # et à la programmation en général, donc tout ce que vous avez expliqué est très très apprécié!