2010-10-26 4 views
0

Dans une question d'entrevue, j'ai vu ça. Comment inverser le contenu de cette liste sans perdre les références.Liste inverse sans perdre de références

List<string> list = new List<string>() {"AA", "BB", "CC" }; 

Mise à jour:

La question est plus comme ça, vous avez:

public void ReversedList<T>(IList<T> listToReverse) 
{ 
// To be implemented 
} 

échantillon la liste a 1,2,3,4 et doit retourner 4,3,2, 1 sans perdre la référence.

+0

Si certains me l'ont demandé lors d'une interview, je leur demanderais s'il s'agit d'une question piège. Ce sont des choses triviales qui n'ont pas leur place dans une interview, c'est plus approprié pour le processus de sélection. – leppie

+0

Vous pouvez faire l'ancien algorithme de permutation - remplacer 1er par le dernier, second par un avant le dernier etc ... –

+0

Etes-vous sûr de la std :: Liste ou était-il plus comme la structure de liste C liée? –

Répondre

8

Voulez-vous dire inverser, c'est-à-dire changer l'ordre en "CC", "BB", "AA"? Il suffit d'appeler List<T>.Reverse():

list.Reverse(); 

Si ce n'est pas ce que vous voulez dire, s'il vous plaît modifier votre question pour être plus précis. (Ce n'est pas vraiment clair ce que vous entendez par "sans perdre les références" non plus.)

2

À moins que je ne manque quelque chose, list.Reverse() ferait exactement ce que vous voulez (inverser les éléments en place plutôt que de créer une nouvelle liste avec identique articles dans l'ordre inverse).

Questions connexes