简体   繁体   中英

How to easily order an array from largest to smallest in Visual C#?

I have a small array of ints. I want to reorder the array from largest to smallest. Is there a method to do this?

You could use Array.Sort :

int[] array = new[] { 1, 3, 2 };
Array.Sort(array, (x, y) => y.CompareTo(x));

As far as complexity is concerned:

On average, this method is an O(n log n) operation, where n is the Length of array; in the worst case it is an O(n ^ 2) operation

You can try something like this

int[] ints = new int[] {1, 2, 3, 4, 1, 2, 3};
var sorted = ints.OrderBy(i => i);

Found at Sort array of items using OrderBy<>

You can do it using Array Sort & Reverse :

Array.Sort(array);
Array.Reverse(array);

Example:

[Test]
public void Test()
{
    var array = new[] { 1, 3, 2 };
    Array.Sort(array);
    Array.Reverse(array);

    CollectionAssert.AreEquivalent(new[] { 3, 2, 1 }, array);
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM