В C# как проверить наличие дублирующих элементов внутри списка, а затем напечатать имя дублирующего элемента? - PullRequest
2 голосов
/ 04 февраля 2020

Я пытаюсь отсортировать список в алфавитном порядке, затем, как только список отсортирован, напечатайте имя любого элемента в списке, который встречался более одного раза.

В большинстве поисков Google используется только адрес, сравнивающий отдельные списки. Я знаю, что вы можете сравнивать строки и элементы списка (в данном случае это строки), но я не уверен, как сравнивать эти строки, поскольку они в списке.

using System;
using System.Collections.Generic;

namespace Challenge5alphabeticalOrderSorting
{
    class MainClass
    {
        public static void Main(string[] args)
        {
            List<string> fruit = new List<string>()
            {
                "apple",
                "mango",
                "mango",
                "orange",
                "blueberry",
                "blueberry"
            };

            fruit.Sort();
            foreach (string f in fruit)
                Console.WriteLine(f);
        }
    }
}

1 Ответ

3 голосов
/ 04 февраля 2020

Приведенный ниже код печатает дублированные имена по желанию OP (не подсчет или что-то еще), используя методы GroupBy, Where и Count

и печатает имя любого элемент в списке, который встречался более одного раза.

var groups = fruit.GroupBy(f => f).Where(g => g.Count() > 1);
foreach (var group in groups)
    Console.WriteLine(group.Key);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...