C # Попытка вернуть индексы для дублированных элементов в списке, но цикл продолжает возвращать индекс только первого дубликата - PullRequest
0 голосов
/ 29 сентября 2018

Всякий раз, когда я запускаю это, я хочу, чтобы индексы элементов списка отображались.Однако, когда у меня есть цикл поиска для одного из элементов в списке, он даст мне несколько индексов, но это только индекс элемента, который идет первым в списке.Так что, если бы было 2 экземпляра этого элемента списка, это дало бы мне индексы 1 и 1 (пример).

Console.WriteLine("\n\nPress enter to display team list with duplications");
        Console.ReadLine();
        List<string> teamList = new List<string>();
        teamList.Add("cubs");
        teamList.Add("red sox");
        teamList.Add("yankees");
        teamList.Add("cubs");
        teamList.Add("yankees");
        teamList.Add("yankees");

        foreach (string teams in teamList)
        {
           Console.WriteLine(teams);
        }

        Console.WriteLine("Select an item in the list: ");
        string teamSelected = Console.ReadLine();
        List<int> indexList = new List<int>();


        if (teamList.Contains(teamSelected))
        {
            foreach (string teams in teamList)
            {
                if (teams == teamSelected)
                {
                    Console.WriteLine(teamList.IndexOf(teams));


                }
            }
        }
        else { Console.WriteLine("That is not an option!"); }

1 Ответ

0 голосов
/ 29 сентября 2018

Вы просите дать индекс teams, используя .IndexOf().Даже если существует несколько индексов с одинаковым значением, например, teamList[0] имеет то же значение, что и teamList[3], .IndexOf() всегда будет возвращать первый найденный индекс.

Чтобы исправить это, вы должны использовать *Цикл 1008 * вместо цикла foreach, например, так:

for(int index = 0; index < teamList.Count; index++)
    if(teamList[i] == teamSelected)
        Console.WriteLine(i);

List.Count возвращает количество элементов, хранящихся в List.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...