LINQ к SQL: GroupBy () и Max () для получения объекта с последней датой

n = abs(number);
result = 1;
if (n mod 2 == 0) {
  result = 2;
  while (n mod 2 = 0) n /= 2;
}
for(i=3; i

существуют некоторые тесты по модулю, которые являются лишними, поскольку n никогда не может делиться на 6, если все факторы 2 и 3 были удалены. Вы могли только позволить начала, поскольку я, которого показывают в нескольких других ответах здесь.

Вы могли на самом деле переплести решето Эратосфена здесь:

  • Первый создают список целых чисел до sqrt (n).
  • В для цикла отмечают все кратные числа меня до нового sqrt (n) как не главный, и используют некоторое время цикл вместо этого.
  • устанавливает i на следующее простое число в списке.

Также см. этот вопрос .

34
задан p.campbell 10 November 2009 в 00:09
поделиться

3 ответа

Мне интересно, можно ли что-то вроде:

var custsLastAccess = db.CustAccesses   
                    .Where(c.AccessReason.Length>0)
                    .GroupBy(c => c.CustID)
                    .Select(grp => new {
                      grp.Key,
                      LastAccess = grp
                         .OrderByDescending(x => x.AccessDate)
                         .Select(x => x.AccessDate)
                         .FirstOrDefault()
                    }).ToList();

вы также можете попробовать OrderBy () и Last ()

35
ответ дан 27 November 2019 в 16:45
поделиться
var custsLastAccess = db.CustAccesses   
                            .Where(c.AccessReason.Length>0)
                        .GroupBy(c => c.CustID, (id, custs) => new { ID=id, LastAccess=custs.OrderByDescending(c=>c.AccessDate).First().AccessDate})
                      .Select()
                        .ToList();
0
ответ дан 27 November 2019 в 16:45
поделиться

Используя синтаксис LINQ, который, как мне кажется, выглядит чище:

var custsLastAccess = from c in db.CustAccesses 
                      group c by c.CustID into grp
                      select grp.OrderByDescending(c => c.AccessDate).FirstOrDefault();
23
ответ дан 27 November 2019 в 16:45
поделиться
Другие вопросы по тегам:

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