C# Метод, который зацикливает список и обращается к различным свойствам в разное время - PullRequest
3 голосов
/ 29 марта 2020

Итак, у меня есть List<Product>, что мне нужно l oop и вычислить некоторые вещи. Каждый Product имеет свойства Price и Tax. То, что я хочу сделать, - это иметь метод, с помощью которого я смогу просмотреть список и вычислить общую стоимость и общий налог, но я не хочу писать методы для этого.

На данный момент у меня есть это:

private double calculateTotalPrice()
        {
            List<Product> temp = this.GetList();
            double price = 0;
            for(int i = 0; i < Count; i++)
            {
                price += temp[i].Price;
            }

            return price;
        }

Но с этим методом мне нужно иметь один метод для расчета цены и другой для налога. Можно ли изменить этот метод, чтобы я мог его вызвать и в один момент рассчитать цену, а в следующий раз я вызову его для расчета налога? Я надеюсь сделать это без использования операторов If, но я не уверен, возможно ли это.

Ответы [ 2 ]

6 голосов
/ 29 марта 2020

Вы можете использовать существующий Sum метод из System.Linq пространства имен, не записывая его самостоятельно

double price = temp.Sum(item => item.Price);
double tax = temp.Sum(item => item.Tax);
0 голосов
/ 29 марта 2020

Вы можете использовать метод расширения Aggregate LINQ, как показано ниже.

var totalPrice = temp.Aggregate((p1, p2) => p1.Price + p2.Price);
var totalTax = temp.Aggregate((t1, t2) => t1.Tax + t2.Tax);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...