У меня есть объект List, заполненный экземплярами пользовательской структуры.
list.Add(new Mail("mail1", "test11", "path11"));
list.Add(new Mail("mail2", "test12", "path12"));
list.Add(new Mail("mail1", "test13", "path13"));
list.Add(new Mail("mail1", "test14", "path14"));
list.Add(new Mail("mail2", "test15", "path15"));
var q = from x in list
group x by x.Sender into g
let count = g.Count()
where count > 2
orderby count descending
select new { Sender = g.Key};
foreach (var x in q)
{
Console.WriteLine(x.Sender);
}
Вывод этого кода будет следующим:
mail1
Но так как мне нужночтобы работать с каждым элементом Почты, который доступен более двух раз (или, может быть, n раз) в зависимости от значения определенного свойства (например, Отправитель), мне нужен запрос, чтобы показать ВСЕ элементы, которые встречаются чаще, чем n (включаяссылка на соответствующий почтовый элемент.
После заполнения запроса я бы хотел сделать что-то вроде этого:
foreach (var x in q)
{
Console.WriteLine(x.Sender + " - " + x.Path + " - " + x.Count);
}
Я новичок в LINQ, но уверен, что это как-то возможно.
Спасибо за вашу помощь
С уважением, Кевин