TheDeveloperBlog.com

Home | Contact Us

C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML

<< Back to C-SHARP

C# Reverse Extension Method

Invoke the Reverse extension method from System.Linq to change the ordering of an IEnumerable.
Reverse. Elements can be reversed in many ways. One way applies the Reverse extension method for a declarative, clear syntax. The Reverse method acts upon many collection types.Extension
With this extension method, we receive the elements in the opposite order. Reverse can be used on lists, arrays and IEnumerable things. It is useful, but not perfect.IEnumerable
First example. We invoke the Reverse extension method from the System.Linq namespace. The program includes the System.Linq namespace at the top—this is important.LINQ

Tip: The Reverse extension method is not defined on the array type. It is an extension, not instance, method.

Info: Reverse() is from System.Linq and can act upon arrays. This program writes the opposite element order in the array to the screen.

Console
C# program that uses Reverse extension method using System; using System.Linq; class Program { static void Main() { // Create an array. int[] array = { 1, 2, 4 }; // Call reverse extension method on the array. var reverse = array.Reverse(); // Write contents of array to screen. foreach (int value in reverse) { Console.WriteLine(value); } } } Output 4 2 1
Reverse, expression. A key benefit to Reverse() here is that it can be called directly upon a query expression. So we do not need to convert anything to an array first.

Program: We use a query expression to get all the numbers greater than or equal to 10, and then reverse the results.

C# program that uses Reverse, query expression using System; using System.Linq; class Program { static void Main() { int[] array = { 1, 0, 20, 40, -2 }; // Use Reverse as part of a query expression. var higherNumbers = (from number in array where number >= 10 select number).Reverse(); // Display results. foreach (int value in higherNumbers) { Console.WriteLine("GREATER THAN 10 REVERSED: {0}", value); } } } Output GREATER THAN 10 REVERSED: 40 GREATER THAN 10 REVERSED: 20
Performance. The Reverse extension method will likely have worse performance in many cases than other methods. This is because there is an iterator used in the LINQ method.

Allocations: LINQ requires more allocations and in the end results in worse performance.

Array.Reverse. To achieve better performance, it would be possible to use the Array.Reverse method, or even use imperative statements and loops.Array.ReverseArray

Also: Typically, LINQ methods will degrade performance on low-level value type collections.

A review. The Reverse extension method is effective. But it may not be ideal for all programs. The declarative, function-based syntax of Reverse is short but not optimally fast.
© TheDeveloperBlog.com
The Dev Codes

Related Links:


Related Links

Adjectives Ado Ai Android Angular Antonyms Apache Articles Asp Autocad Automata Aws Azure Basic Binary Bitcoin Blockchain C Cassandra Change Coa Computer Control Cpp Create Creating C-Sharp Cyber Daa Data Dbms Deletion Devops Difference Discrete Es6 Ethical Examples Features Firebase Flutter Fs Git Go Hbase History Hive Hiveql How Html Idioms Insertion Installing Ios Java Joomla Js Kafka Kali Laravel Logical Machine Matlab Matrix Mongodb Mysql One Opencv Oracle Ordering Os Pandas Php Pig Pl Postgresql Powershell Prepositions Program Python React Ruby Scala Selecting Selenium Sentence Seo Sharepoint Software Spellings Spotting Spring Sql Sqlite Sqoop Svn Swift Synonyms Talend Testng Types Uml Unity Vbnet Verbal Webdriver What Wpf