Mostrar posição do item em uma lista

Eu estou trabalhando com uma lista de links. Meu construtor usa matrizes com itens ou anexa um item (um de cada vez) à lista por meio deBtnAddTree clique. Por razões experimentais, estou tentando descobrir uma maneira de recuperar a posição de um item da lista. Eu configurei três botões que esperançosamente mostrarão:first, next, last item e exibir através de umlabel. Eu criei duas funções para alcançar minha necessidadeRetrieve eCurrent_Tree() mas aqui é onde eu chego a um beco sem saída. Estou ciente de exibir itens que sãonext Talvez eu precise usar um loop, mas não tenho certeza sobre como fazer isso. Como posso exibir a posição de um item encontrado na lista?

        public class ListForTrees
        {

        //Retrieve Position of item
            public void Retrieve(int Position)
            {
                int new_position = Position;
                fruit_trees current = first_tree;

                for (int i = 0; i < Position && current != null; i++)
                {
                    current = current.next_tree;
                }
                return current;
            }

        //Show Current Tree
            public void Current_Tree()
            {
                try
                {
                    current = fruit_trees.first_tree;
                    labelSpecificTree.Text = current.Type.ToString();
                }
                catch { };

            }         



        }

        ListForTrees mainlist = new ListForTrees();     

        private void BtnGo_Click(object sender, EventArgs e)
        {
            fruit_trees[] ax = {   new fruit_trees("cherry", 48, 12.95, 3),
                                             new fruit_trees("pine", 36, 9.95, 8),
                                             new fruit_trees("oak", 60, 14.95, 2),
                                             new fruit_trees("peach", 54, 19.95, 3),
                                             new fruit_trees("pear", 36, 11.85, 2),
                                             new fruit_trees("apple", 62, 13.45, 5)
                                         };   
            mainlist = new ListForTrees(ax);
            fruit_trees current = mainlist.first_tree;   

            while (current != null)
            {
                TxtOutput.AppendText(current.ToString() + Environment.NewLine);
                current = current.next_tree;
            }
        }

        private void ShowNextItem_Click(object sender, EventArgs e)
        {
        //Show Next Item
        }

        private void ShowLastItem_Click(object sender, EventArgs e)
        {
        //Show Last Item
        }

        private void ShowFirstItem_Click_1(object sender, EventArgs e)
        {
        // Show First Item
        }


    }
}

questionAnswers(1)

yourAnswerToTheQuestion