Listing 8

using namespace System;

generic<typename T>
void Display1DArray(String^ text, array<T>^ ary)
{
    if (ary == nullptr)
    {
        Console::WriteLine("nullptr passed");
        return;
    }
    Console::Write("{0}  {1}:", text, ary->Length);
    for each (T element in ary)
    {
        Console::Write(" {0}", element);
    }       
    Console::WriteLine();
}
int main()
{
    array<int>^ numbers = gcnew array<int> {10, 75, 23, 18, 53, 18};
    Display1DArray("numbers, original", numbers);

/*1*/   Console::WriteLine("IndexOf(18)  {0}", Array::IndexOf(numbers, 18));

/*2*/   Console::WriteLine("LastIndexOf(18) {0}", 
                                            Array::LastIndexOf(numbers, 18));
/*3*/   Array::Sort(numbers);
    Display1DArray("numbers, sorted  ", numbers);

/*4*/   Console::WriteLine("BinarySearch(23) {0}", 
                                          Array::BinarySearch(numbers, 23));
/*5*/   Array::Reverse(numbers);
    Display1DArray("numbers, reversed", numbers);

    array<int>^ numbers2 = gcnew array<int>(4);

/*6*/   Array::Copy(numbers, numbers2, numbers2->Length);
    Display1DArray("numbers2         ", numbers2);
    
/*7*/   Array::Clear(numbers, 1, 4);
    Display1DArray("numbers, cleared ", numbers);
}