Obtenez de l'index d'un élément à partir de la liste contenant des doublons possibles

bon, j'ai une liste d'objets de la classe comme ceci:

List<fruit> lst = new List<fruit>();
    lst.Add(orange);
    lst.Add(apple);
    lst.Add(grape);
    lst.Add(grape);
    lst.Add(orange);
    lst.Add(pear);
    lst.Add(apple);

Je veux être en mesure de demander la liste à quelque chose comme
GetIndex("orange", 2) et de l'avoir de retour (dans ce cas) l'indice # pour la deuxième instance de l'objet en question (en position 4).

Cette liste sera dynamiquement rempli, et il peut même ne pas avoir une orange pour commencer. Si c'est le cas, je veux le numéro d'instance du deuxième paramètre. Si je peux obtenir la deuxième orange, ou d'obtenir de la cinquième à la mangue, etc.

liste.IndexOf(orange) renvoie la première occurrence de tous les doublons, j'ai donc besoin de quelque chose d'autre.

Des idées?

PS: j'ai omis de mentionner que le premier param sera une chaîne de caractères!

  • Voulez-vous dire GetIndex(orange, 2)?
  • voulez-vous la double position de toujours , qu'advient-il si il a trois éléments
  • pourquoi ne pas vous dictionnaire et de les stocker sous forme de valeurs uniques et d'interroger plus tard et de trouver l'élément que vous souhaitez.
  • cela peut fonctionner...
  • serait la clé de dictionnaire, soit le nombre total de cet objet, ou est-il destiné à être l'indice?
  • vous devez utiliser un Dictionnaire<string, List<fruits>> où la clé du dictionnaire est le nom du fruit, et la valeur est une liste de tous les doublons. Si l'espace de stockage est un problème, vous pouvez utiliser LinkedList au lieu de la Liste.

InformationsquelleAutor Neith | 2011-07-09