Использование .ToList
в материализованном списке повлияет только на объем необходимой памяти. Хотя технически это может сказаться на производительности, маловероятно, если у вас не будет миллионов пользователей; в этом случае, честно говоря, в любом случае, возможно, вам будет доступна оперативная память сервера.
.ToList
определенно не требуется, хотя. Все, что вам нужно сделать, это подсчитать разницу здесь, чтобы вы могли пропустить ToList и Where (поскольку Count принимает Func)
int officialUsers = users.Count(s => s.IsOfficialUser);
int nonOfficialUsers = users.Count(s => !s.IsOfficialUser);