C# Somme d'une propriété dans une Liste d’Objet ou dans une collection


Dans mon cas précis, j'ai un système de panier d'achat qui récapitule tous les éléments choisis par l'utilisateur en tenant compte de la quantité du prix de chaque produit. Le prix Amount doit être facturé au client d'où mon besoin de faire la somme de la propriété Amount de ma collection.

Pour faire le Total d'une propriété de votre collection, il vous suffit de procéder comme suit. Que vous utilisez une List ou une ObservableCollection, la méthode reste la même.

Prenons un exemple de classe somme celui-ci 


 public class Shopping : INotifyPropertyChanged
    {


        private string _ID;
        public string ID
        {
            get { return _ID; }
            set
            {
                if (_ID != value)
                {
                    _ID = value;
                    OnPropertyChanged("ID");
                }
            }
        }
        private string _Name;
        public string Name
        {
            get { return _Name; }
            set
            {
                if (_Name != value)
                {
                    _Name = value;
                    OnPropertyChanged("Name");
                }
            }
        }
        
        private double _Qte;
        public double Qte
        {
            get { return _Qte; }
            set
            {
                if (_Qte != value)
                {
                    _Qte = value;
                    OnPropertyChanged("Qte");
                }
            }
        }
        private double _Pu;
        public double Pu
        {
            get { return _Pu; }
            set
            {
                if (_Pu != value)
                {
                    _Pu = value;
                    OnPropertyChanged("Pu");
                }
            }
        }
        private double _Amount;
        public double Amount
        {
            get { return _Amount; }
            set
            {
                if (_Amount != value)
                {
                    _Amount = value;
                    OnPropertyChanged("Amount");
                }
            }
        } 
        public event PropertyChangedEventHandler PropertyChanged;
        protected void OnPropertyChanged(string p_strPropertyName)
        {
            if (PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(p_strPropertyName));
        }
    }

Ci-dessous le code pour faire la somme


double total = myShopping.Select(i => i.Amount).Sum();

myShopping étant le nom de ma collection. Vous pouvez aussi appliquer un filtre, si votre besoin est de ne pas totaliser tous les éléments mais juste quelques-uns en prenant un critère ou propriété, en utilisant .Where() .

Si vous avez des questions n’hésitez pas à laisser un commentaire juste en dessous ou si avez d’autres questions qui sont pas relatifs à cet article, écrivez moi pour me les poser et je ferai un article en guise de réponse.

Copyright 2016 SIR JOJO | Designed and Developed By ELTIMAR