2013-11-14 2 views
1

Я не могу использовать обратный метод, потому что он может использоваться только в том случае, если массив полностью заполнен. Этот массив будет только частично заполнен, так что я должен делать? Это мой код:Обратить все элементы в массиве

if (mContactsIndex == 0) 
     MessageBox.Show("Array is empty"); 

    string tempContact; 
    int ctr; 
    for (ctr = 0; ctr < mContactsIndex; ctr++) 
    { 
     tempContact = mContacts[ctr]; 
     mContacts[ctr] = mContacts[mContactsIndex ]; 
     mContacts[mContactsIndex ] = tempContact; 
     displayContacts(); 
    } 

, что именно не так с ним?

+4

Я хотел бы предложить ходить простой пример на доске или что-то. Я думаю, что это будет ясно, что не так. С самого начала я могу сказать, что вы определенно не используете 'mContactsIndex' правильно. – jlars62

+1

Как насчет 'mContacts.ToList(). Reverse(). ToArray();'? –

+0

Вы никогда не меняете эту переменную 'mContactsIndex' –

ответ

8

Если у вас есть массив, который частично заполнен, вы можете вместо этого использовать List<T>. Это похоже на массив, но его размер является переменным.

Если вы хотите использовать массив, вы можете использовать Array.Reverse отменить только ту часть, что вы хотите:

Array.Reverse(mContacts, 0, mContactsIndex); 
+0

Спасибо! которые работали, мы еще не научились использовать списки массивов, поэтому я не знаю, как их использовать. Но array.reverse работал! – user2993348

Смежные вопросы