Из спецификации Java :
Октальная цифра состоит из цифры ASCII 0, за которой следует одна или несколько цифр ASCII от 0 до 7 и может представлять собой положительное, нулевое или отрицательное целое.
blockquote>
Можно использовать "группу" + "orderby". См. LINQ 101 для деталей
var list = new List<string> {"a", "b", "a", "c", "a", "b"};
var q = from x in list
group x by x into g
let count = g.Count()
orderby count descending
select new {Value = g.Key, Count = count};
foreach (var x in q)
{
Console.WriteLine("Value: " + x.Value + " Count: " + x.Count);
}
В ответ на это сообщение (теперь удаленный):
, Если у Вас есть список некоторых пользовательских объектов тогда, необходимо использовать пользовательский компаратор или группа определенным свойством.
Также запрос не может отобразить результат. Покажите нам полный код для получения лучшей справки.
На основе Вашего последнего обновления:
у Вас есть эта строка кода:
group xx by xx into g
, Так как xx является системой пользовательского объекта, не знает, как сравнить один объект с другим. Как я уже записал, необходимо вести компилятор и обеспечить некоторое свойство, которое будет использоваться в сравнении объектов или обеспечит пользовательский компаратор. Вот пример:
Примечание, которое я использую Foo. Имя как ключ - т.е. объекты будет сгруппировано на основе значения [1 118] свойство Name .
существует одна выгода - Вы рассматриваете 2 объекта быть дубликатом на основе их имен, но что относительно идентификатора? В моем примере я просто беру идентификатор первого объекта в группе. Если Ваши объекты имеют различный Ids, это может быть проблема.
//Using extension methods
var q = list.GroupBy(x => x.Name)
.Select(x => new {Count = x.Count(),
Name = x.Key,
ID = x.First().ID})
.OrderByDescending(x => x.Count);
//Using LINQ
var q = from x in list
group x by x.Name into g
let count = g.Count()
orderby count descending
select new {Name = g.Key, Count = count, ID = g.First().ID};
foreach (var x in q)
{
Console.WriteLine("Count: " + x.Count + " Name: " + x.Name + " ID: " + x.ID);
}
Немного более короткая цепочка методов использования версии:
var list = new List<string> {"a", "b", "a", "c", "a", "b"};
var q = list.GroupBy(x => x)
.Select(g => new {Value = g.Key, Count = g.Count()})
.OrderByDescending(x=>x.Count);
foreach (var x in q)
{
Console.WriteLine("Value: " + x.Value + " Count: " + x.Count);
}