Вычислить сумму всех элементов массива в C#
В этом посте мы обсудим, как вычислить сумму всех элементов в целочисленном массиве в C#.
1. Использование Enumerable.Sum() метод
Мы можем использовать встроенный метод числовой агрегации Sum() от System.Linq namespace для вычисления суммы числовых значений в последовательности. Это показано ниже:
2. Использование Array.ForEach() метод
С использованием Array.ForEach() метод, мы можем выполнить операцию сложения для каждого элемента указанного массива. Следующий пример демонстрирует это, находя общую сумму всех элементов массива, используя Array.ForEach() :
3. Использование foreach петля
Мы также можем перебирать элементы массива с помощью оператора foreach и вычислять сумму на лету. Это показано ниже:
4. Использование Enumerable.Aggregate() метод
Наконец, можно использовать Enumerable.Aggregate() метод в System.Linq Пространство имен, которое применяет функцию аккумулятора к каждому элементу последовательности.
В следующем примере кода показано, как использовать Aggregate для выполнения сложения.
Это все о вычислении суммы всех элементов массива в C#.
Оценить этот пост
Средний рейтинг 4.84 /5. Подсчет голосов: 25
Голосов пока нет! Будьте первым, кто оценит этот пост.
Сожалеем, что этот пост не оказался для вас полезным!
Расскажите, как мы можем улучшить этот пост?
Спасибо за чтение.
Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.
Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования
Операции Count, LongCount и Sum
Операция Count возвращает количество элементов во входной последовательности. Эта операция имеет два прототипа, описанные ниже:
Первый прототип Count
Этот прототип операции Count возвращает общее количество элементов во входной последовательности, проверяя сначала, реализует ли она интерфейс ICollection<T>, и если да, то получает счетчик последовательности через реализацию этого интерфейса. Если же входная последовательность source не реализует интерфейс ICollection<T>, операция Count перечисляет всю эту последовательность, подсчитывая количество элементов.
Второй прототип Count
Второй прототип операции Count перечисляет входную последовательность source и подсчитывает все элементы, которые заставляют делегат метода predicate вернуть true:
Если любой из аргументов равен null, генерируется исключение ArgumentNullException. Если значение count превышает Int32.MaxValue, генерируется исключение OverflowException.
Код ниже начинается с использования первого прототипа. Сколько элементов содержится в последовательности cars? Затем используется второй прототип, подсчитывая количество машин, начинающихся с «A»:
Результат работы этого кода:
LongCount
Операция LongCount возвращает количество элементов входной последовательности как значение типа long. Эта операция имеет два прототипа, полностью идентичных прототипам операции Count, за тем лишь исключением, что они возвращают число элементов, имеющих тип long, а не int.
Давайте рассмотрим пример использования операции LongCount. Можно было бы просто повторить тот же пример, который сопровождал описание операции Count, изменив соответствующие места на тип long, но это не слишком наглядно. Поскольку нереально описать достаточно длинную статическую последовательность, для которой понадобилась бы операция LongCount, она генерируется с помощью стандартной операции запроса:
Как видите, были сгенерированы две последовательности с использованием операции Range и соединены вместе с помощью операции Concat.
Перед запуском примера наберитесь терпения — он выполняется долго, возможно, даже несколько минут. Например, на машине с четырехядерным процессором и 4 Гбайт памяти для этого потребовалось около минуты. В конце концов, будут сгенерированы две последовательности, каждая по 2 147 483 647 элементов. Ниже показан результат:
Операция Sum возвращает сумму числовых значений, содержащихся в элементах последовательности. Эта операция имеет два прототипа, описанные ниже:
Первый прототип Sum
Тип Numeric должен быть одним из int, long, double или decimal, либо одним из их допускающих null эквивалентов: int?, long?, double? или decimal?.
Первый прототип операции Sum возвращает сумму всех элементов входной последовательности source. Пустая последовательность приведет к возврату нуля. Операция Sum не включает значения null в результат для числовых типов, допускающих null.
Второй прототип Sum
Второй прототип Sum ведет себя так же, как и первый, но суммирует только те значения входной последовательности, которые выбраны делегатом метода selector.
Если любой из аргументов равен null, генерируется исключение ArgumentNullException. Если сумма оказывается слишком большой, чтобы уместиться в тип Numeric, и если тип Numeric отличается от decimal или decimal?, генерируется исключение OverflowException. Если же типом Numeric является decimal или decimal?, возвращается положительная или отрицательная бесконечность.
Ниже показан пример использования первого прототипа операции Sum:
Теперь попробуем второй прототип, как показано ниже. В этом примере задействован общий класс EmployeeOptionEntry, и будут суммироваться опционы для всех сотрудников:
Вместо того чтобы пытаться суммировать весь элемент, что не имело бы смысла в данном примере, поскольку речь идет об объекте сотрудника, можно использовать элемент selector второго прототипа, чтобы извлечь только интересующие члены — в данном случае optionsCount. Результат выполнения этого кода показан ниже:
Linq Sum in C#
In this article, I am going to discuss the Linq Sum in C# with examples. Please read our previous article before proceeding to this article where we discussed the basics of Linq Aggregate Functions in C# with some examples. As part of this article, we are going to discuss the following pointers.
- What is Linq Sum in C#?
- Multiple examples using both Method and Query syntax.
What is Linq Sum in C#?
The Linq Sum() Method belongs to the category of Aggregate Functions. The Linq Sum method in C# is used to calculates the total or sum of numeric values in the collection. Let us understand the Sum() method with some examples.
Example1:
The following example calculates the sum of all integers present in the collection.
This is a very simple Employee class with having four properties such as ID, Name, Salary, and Department. We also create one method i.e. GetAllEmployees() which will return the list of all the employees.
Example4:
The following example calculates the Sum of Salaries of all the employees.
Example5:
The following example calculates the sum of the salary of all the employees who belong to the IT department.
Example6:
Let’s rewrite the previous example using custom predicate.
In the next article, I am going to discuss the LINQ Max Aggregate Function in C# with some examples. Here, in this article, I try to explain C# Sum Method with examples. I hope you understood the need and use of Linq Sum Method with examples.
C# Sum Method
It computes the sum total of all the numbers in an array, or List, of integers. This extension method in LINQ provides an excellent way to do this with minimal calling code. It has some drawbacks.
Example. The Sum method described here does not exist on either the array abstract base class or the List type. It is instead an extension method found in the System.Linq namespace, which you must include with a using directive.
Tip: The method can be used on objects that implement IEnumerable with a type of decimal, double, int or long.
The program declares an int array and populates it with four odd numbers, and then declares a List with the same numbers. Sum() is invoked on those two variable references. It loops over the values and returns the sum of the elements.
Finally: The program writes the sums to the screen. It uses Console.WriteLine to do this.
Discussion. There are drawbacks associated with the Sum extension method. The Sum method has some overhead that will make it slower than a simple for-loop in the C# language. It inserts a null check at the start of its method body.
Also: It uses a foreach-loop, which can produce slower execution on value types.
By using Sum, you avoid copying code into your program source and instead exploit code inside the Framework that is more tested. This will reduce the assembly's code size and number of lines of C# code. This could be preferable.
Summary. You can use the Sum extension method to total the values of elements in an array or List. We noted the implementation in the base class library of the Sum extension, as well as some overloads you can use.
And: It provides a way for you to write less code that requires less thought to maintain, at the price of runtime performance.