C# указатели, итераторы и дженерики

Я в большом тупике

Как использовать итератор в C# как итератор в C++? Я не могу найти аксессор Begin() или End(), я даже не могу найти, как объявить итератор. Я читал о Ienumerator. Моя цель - реализовать функцию Merge. Вот часть моей функции Merge, написанная на C++. В основном, я ищу эквивалент того, что показано на C#, только я буду использовать тип Reference, а не целые числа.

void merge(vector<int>::iterator left, vector<int>::iterator right, vector<int>::iterator      leftEnd, vector<int>::iterator rightEnd, vector<int>::iterator full)
{

    while(left != leftEnd && right!= rightEnd) //compare left and right until the end of the vector is reached
    {
        if(*right < *left)      //right < left so insert right to the output vector and advance the iterators
        {
            *full++ = *right++;
        }
        else                   //left < right so insert left to the output vector and advance the iterators
        {
            *full++ = *left++;
        }
    }

    while(left != leftEnd)    //copy any remaining elements into the output from left 
    {
        *full++ = *left++;
    }
}

Также, какую коллекцию (коллекции) я должен использовать? (в настоящее время я пробовал List и LinkedList).

5
задан Seth Carnegie 5 February 2012 в 18:03
поделиться