У меня есть список объектов. Одним из свойств отдельной записи объекта является сумма. Как мне получить сумму?
Если мой список был типа double, я мог бы сделать что-то вроде этого:
double total = myList.Sum();
Однако я хочу что-то похожее на это, но этот синтаксис является неправильным.
double total = myList.amount.Sum();
Как мне это сделать? Я хотел бы использовать функцию Sum, если это возможно, вместо того, чтобы перебирать и вычислять значение.
И если вам нужно сделать это на предметах, которые соответствуют определенному условию ...
источник
Другая альтернатива:
источник
.Select(i => i.Moons).Sum()
тебя можно использовать.Sum(i => i.Moons)
Вот пример кода, который вы можете запустить, чтобы выполнить такой тест:
Тот же пример для сложного объекта:
Мои результаты без оптимизации компилятора:
и для второго теста:
похоже, что LINQ обычно медленнее, чем foreach (...), но для меня странно то, что foreach (...) выглядит быстрее, чем для цикла.
источник
Stopwatch
в ,System.Diagnostics
так как это время рекордер высокой производительности. (Между прочим, я не отрицал вас)DateTime.Now
для измерения. У него ужасная производительность, так как он всегда возвращает местное время.DateTime.UtcNow
быстрее; однако, он все еще не использует такое высокое разрешение, какStopwatch
класс.