Как использовать лямбда-выражение, чтобы переписать это вычисленное свойство? - PullRequest
0 голосов
/ 31 марта 2020

Я учусь C#. net сейчас. Меня попросили изменить это вычисляемое свойство на лямбда-выражение. Я застрял здесь довольно долго, пожалуйста, помогите.

public class ClientList : BindingList<Client>
    {
        public decimal TotalSales
        {
            get
            {
                decimal totalSales = 0.00m;
                for (int i = 0; i < this.Count(); i++)
                {
                    totalSales += this[i].Sales;
                }
                return totalSales;
            }
        }
    }

Ответы [ 2 ]

4 голосов
/ 31 марта 2020

LINQ ваш друг здесь. Используя функцию Sum (), вы можете применить проекцию ко всем элементам в 'this' BindingList:

return this.Sum(i => i.Sales);

, что означает - проверить каждый элемент в списке 'this' и 'sum' Продажа недвижимости. Возможно, вам придется «использовать System.Linq;». Это предполагает, что Sales уже является десятичным свойством.

Я бы прочитал больше о Linq на вашем месте - некоторые очень аккуратные преобразования, которые вы можете применить, чтобы добиться многого с помощью небольшого кода - попробуйте «Выбрать» и «Где» для начала.

0 голосов
/ 31 марта 2020
decimal totalSales = 0.00m;
this.ForEach(x => totalSales += x.Sales);

Но есть и другой, более LINQi sh способ. Вы хотите сделать это самостоятельно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...