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é!