0
votes

Accumuler des valeurs en C #

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? XXX


0 commentaires

5 Réponses :


0
votes

Vous ne changez pas la valeur de valeur de sorte que ce sera toujours l'original. Ajouter Ajoute l'élément à la fin de la liste.


0 commentaires

2
votes

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;
}


4 commentaires

@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.



1
votes
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

0 commentaires

1
votes

Je ne suis pas vraiment sûr, mais essayez d'utiliser SUMS.Ajouter (valeur * i); au lieu de vos sums.add (valeur);

Conseil: Dans votre cycle, utilisez i ++ au lieu de i = i + 1. Il est plus courant et aussi plus rapide de taper.


0 commentaires

3
votes

Je ne sais pas pourquoi vous créez une liste de objet lorsque c'est très clairement int de la liste. J'ai changé le code pour renvoyer un ienumerable afin que vous puissiez itérer sans matérialiser. Avec cela à l'esprit, vous pouvez rendre votre code un peu plus court: xxx

si vous en avez besoin dans une liste ou un tableau Vous pouvez simplement appeler la méthode appropriée ( .tolist () ou .toarray () ): xxx

violon ici


1 commentaires

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