Преобразовывая SQL, содержащий вершину, количество, группу и порядок к LINQ (2 Объекта)

Вы передаете ссылку на массив, и каждый элемент использует одну и ту же ссылку на объект для данного массива.

Вы можете использовать функцию, которая возвращает новый массив для каждого вызова.

Array.dim = function(dimensions, init) {
    var a = [],
        i;
    for (i = 0; i < dimensions; i++) {
        a[i] = typeof init === 'function' ? init() : init;
    }
    return a;
}

var p = Array.dim(20, 0),
    q = Array.dim(10, () => []);

q[0][0] = 0;

console.log(p);
console.log(q);

Немного более короткий подход.

Array.dim = function(length, init) {
    return Array.from({ length }, typeof init === 'function' ? init : () => init);
}

var p = Array.dim(20, 0),
    q = Array.dim(10, () => []);

q[0][0] = 0;
console.log(p);
console.log(q);

5
задан Sam 3 March 2009 в 12:00
поделиться

2 ответа

Что-то вроде этого должно работать:

(from p in DataContext.Hits
where (p.Date >= minDate) && (p.Date < maxDate)
group p by p.Page into g
select new { Page = g.Key, Number = g.Count() }).OrderByDescending(x => x.Number).Take(10);
7
ответ дан 18 December 2019 в 13:19
поделиться
var top10hits = objectContext.Hits
  .Where(h => minDate <= h.Date && h.Date < maxDate)
  .GroupBy(h => h.Page)
  .Select(g => new { Page = g.Key, Number = g.Count() })
  .OrderByDescending(x => x.Number)
  .Take(10);
7
ответ дан 18 December 2019 в 13:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: