Нет, нет. Новое выражение допускает только инициализацию по умолчанию или вообще не инициализацию.
Обходным решением будет выделение необработанного буфера памяти с помощью operator new[]
, а затем построение объектов в этом буфере с использованием размещения-new с конструктором, отличным от стандартного.
Я вполне уверен, у Вас есть он право. И, SQL, который LINQ генерирует и отправит в Ваш дб, посмотрит точно так же, как SQL, который Вы запустили с, поэтому при выполнении немного большего количества ввода база данных не делает больше работы.
Если Вы хотите объекты Тега, почему бы не создать их непосредственно из Вашего запроса Linq?
var groups = from t in DataContext.Tags
group t by t.Tag into g
select new Tag() { Tag = g.Key, Frequency = g.Count() };
return groups.OrderByDescending(g => g.Frequency).Take(25);
При использовании подробной формы синтаксиса код будет подробным. Вот альтернатива:
List<Tag> result =
db.Tags
.GroupBy(t => t.Tag)
.Select(g => new {Tag = g.Key, Frequency = g.Count()})
.OrderByDescending(t => t.Frequency)
.Take(25)
.ToList()
.Select(t => new Tag(){Tag = t.Tag, Frequency = t.Frequency})
.ToList();
Dictionary<,>
реализации IDictionary<`0, `1>
, где '0
и '1
относятся к параметрам типа Dictionary<,>
- ищут его в ILDasm или подобный.
– Anton Tykhyy
13 January 2018 в 06:21
Я думаю, что вы также несправедливы в том, что ваш SQL-запрос делает не то же самое, что и ваш LINQ-запрос - он не возвращает топ-25.