LINQ: Удалите объекты из IQueryable

Вы должны отключить функцию «Оптимизация батареи» для этого конкретного приложения, которое использует функции FCM. О том, как отключить «Оптимизацию батареи», вы можете выполнить следующие шаги:

Информация о приложении-> Батарея-> Оптимизация батареи, затем выбрать «Все приложения» из меню и найти свое приложение, выберите «Не оптимизировать».

5
задан tsilb 4 April 2009 в 01:14
поделиться

2 ответа

Вам не нужен foreach, Вы могли просто использовать это...

obj.RemoveAll(act => isDomainBlackListed(ref dc, act.Referrer));
8
ответ дан 13 December 2019 в 19:36
поделиться

Можно просто поместить его в конце запроса для фильтрования их, прежде чем они даже закончат в результате:

var obj =
   (from a in dc.Activities
   where a.Referrer != null
   && a.Referrer.Trim().Length > 12
   && a.Session.IP.NumProblems == 0
   && (a.Session.UID == null || a.Session.UID < 1 || a.Session.User.BanLevel < 1)
   select a)
   .Take(int.Parse(ConfigurationManager.AppSettings["RecentItemQty"]))
   .Where(a => !isDomainBlacklisted(ref dc, a.Referrer));

Можно поместить Where перед Take если Вы хотите, чтобы другие объекты заменили тех отфильтрованных, но это значит больше вызовов для isDomainBlacklisted, конечно.

3
ответ дан 13 December 2019 в 19:36
поделиться
Другие вопросы по тегам:

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