2010-06-07 4 views

Répondre

10

Oui, vous pouvez utiliser Sum comme ça. Juste affecter le résultat à quelque chose:

int s = intList.Sum(); 

Vous avez maintenant la somme des nombres dans la liste stockée dans une variable appelée s.

Il s'agit en fait d'une méthode d'extension Enumerable.Sum ajoutée dans .NET 3.5 et qui fonctionne sur plus que des listes.

Bien sûr, en interne, cela boucle encore les nombres et les ajoute, mais il est beaucoup plus facile d'appeler cette méthode que de l'écrire vous-même. En utilisant réflecteur .NET, vous pouvez voir que la mise en œuvre est assez simple:

public static int Sum(this IEnumerable<int> source) 
{ 
    if (source == null) 
    { 
     throw Error.ArgumentNull("source"); 
    } 

    int num = 0; 
    foreach (int num2 in source) 
    { 
     num += num2; 
    } 
    return num; 
} 

Notez qu'il existe aussi une méthode Queryable.Sum. Cela vous permet de faire la somme de nombres dans une base de données sans les récupérer et de les parcourir localement. Au lieu de cela, l'opération de somme peut être effectuée dans la base de données et seul le résultat est renvoyé.

+0

Côté note, vous devez "utiliser System.Linq". – Shawn

2

Pour calculer la somme d'une liste, vous devez la calculer au fur et à mesure que des éléments sont ajoutés ou parcourir la liste ultérieurement. Si vous appelez une fonction qui passe par la liste, ou parcourez la liste vous-même, il n'y a pas beaucoup de différence. Donc, pour répondre à votre question, Non, à moins que vous ne calculiez la somme au fur et à mesure que des éléments sont ajoutés.

Quelle langue est-ce, pour ce que ça vaut?

+0

en essayant de faire en C#. – Vishal

0

Cette link peut vous aider. "" Vous voulez calculer la somme totale de tous les nombres dans un tableau d'entiers ou Liste d'entiers dans le langage de programmation C#. La méthode d'extension SUM dans LINQ fournit un excellent moyen de le faire avec un code d'appel minimal, mais présente quelques inconvénients ainsi que des avantages. Ici, nous regardons comment vous pouvez utiliser la méthode d'extension Sum à partir de l'espace de noms System.Linq dans le langage C#, voir un exemple sur un tableau et la liste ""

Questions connexes