https://dotnetfiddle.net/r5mVKw

я есть список в C # как:

List<Data> uData = new List<uData>();

Где uData заполняется из пользовательского интерфейса как:

{
   Id: 1,
   Name: "Smith",
   Input: "7,8",
   Output: "Output1",
   CreatedBy: "swallac",
   CreatedON: "12/01/2018"
},
{
   Id: 2,
   Name: "Austin",
   Input: "9,10",
   Output: "Output1",
   CreatedBy: "amanda",
   CreatedON: "12/03/2018"
},
{
   Id: 3,
   Name: "Smith",
   Input: "22,22",
   Output: "Output2",
   CreatedBy: "swallac",
   CreatedON: "12/01/2018"
},
{
   Id: 4,
   Name: "Smith",
   Input: "9,8",
   Output: "Output2",
   CreatedBy: "aaa",
   CreatedON: "12/01/2018"
},
{
   Id: 5,
   Name: "Peter",
   Input: "7,8",
   Output: "Output3",
   CreatedBy: "swallac",
   CreatedON: "12/02/2018"
}

То, что я хочу сделать, это поиск в этом списке по клавише «Выход» и выяснить, есть ли дубликаты в соответствующем значении комбинации клавиши «Вход» и CreatedBy.

Например, в приведенном выше списке примеров у меня есть три выхода: Output1, Output2, Output3. Теперь для списков с ключом значения Output как «Output1» и «Output3» соответствующее значение ключа «Input» и «CreatedBy» здесь дублируется. Значение «7,8» и «swallac» как совокупное значение. Это то, что я хочу выделить

Для этого я опробовал следующий запрос:

var myList = uData.GroupBy(l => l.Ouput)
                  .SelectMany(g => g.GroupBy(x => (x.Input, x.CreatedBy)).Where(x => x.Count() > 1))
                  .SelectMany(x => x);

Это не дает мне никакой ошибки, но не дает желаемого результата, поскольку в нем перечислены все данные. Что мне здесь не хватает.

--Updated ---

Ранее я хотел, чтобы ввод не повторялся в одном выводе, из-за чего у меня был следующий запрос.

uData.GroupBy(l => l.Ouput)
    .Any(g => g.GroupBy(x => x.Input).Any(x => x.Count() > 1))

Теперь я хочу, чтобы другой запрос проверял, повторяется ли комбинация Input и CreatedBy в списке.

Я попробовал вышеупомянутый отправленный запрос и ниже запрос согласно предложению:

uData.GroupBy(g=> new {g.CreatedBy,g.Input})
    .Where(w=>w.Count() > 1)

Но это возвращает мне весь список вместо дубликата

Обновлено, чтобы добавить пример ссылки:

https://dotnetfiddle.net/HWMYp6

Я создал пример в ссылке выше.

В этом примере я хочу отметить набор с идентификатором 10 с выходом (output5) в качестве дубликата в качестве такой комбинации входных данных, созданной ранее в идентификаторе 1,2,3 (все они принадлежат output1). Таким образом, в основном одна комбинация input и createby не должна повторяться над другим набором. Ссылочный ключ является выходным. Извините, если мой начальный пост был не очень понятен. Я пытался.

Ответы на вопрос(3)

Ваш ответ на вопрос