Search code examples
arraysvisual-studio-2015c++-cli

How to order an array in managed C++/CLI


Here is my array :

cli::array<String^>^ ar = gcnew cli::array<String^>{ "3", "1", "4", "5", "2" };

How can i Order By Descending this array?


Solution

  • You can use Array.Sort by passing a comparison function.

    using namespace System;
    
    int Compare(String^ a, String^ b)
    {
        return String::Compare(a, b, StringComparison::OrdinalIgnoreCase) * -1;
    }
    
    auto ar = gcnew cli::array<String^>{ "3", "1", "4", "5", "2" };
    Array::Sort(ar, gcnew Comparison<String^>(Compare));
    

    Alternately, you can sort with an ascending order and reverse the array.

    Array::Sort(ar, StringComparer::OrdinalIgnoreCase);
    Array::Reverse(ar);