Вы сгруппировали результаты - так какое имя пользователя вы ожидаете получить? Группа представляет собой целую последовательность элементов с одинаковым URL. Если вы хотите использовать первый, вы можете сделать что-то вроде:
var counts = from tc in sList
group tc by tc.origURL into g
orderby g.Count()
select new { myLink = g.Key, First = g.First(), Count = g.Count() };
Вы можете сделать:
foreach (var group in counts)
{
Console.WriteLine(group.First.userName);
}
Если вы хотите всю группу, просто выберите ее:
var counts = from tc in sList
group tc by tc.origURL into g
orderby g.Count()
select new { Group = g, Count = g.Count() };
По общему признанию, в этот момент нет большого смысла иметь Count
отдельно - вы можете просто сделать:
var groups = sList.GroupBy(tc => tc.origURL)
.OrderBy(g => g.Count());
Затем вы можете использовать:
foreach (var group in groups)
{
int count = group.Count();
var key = group.Key;
foreach (var entry in group)
{
// Use each item in the group, etc.
}
}