如何启用包括空成员在内的平均排序

How to enable average sorting including empty members

我需要按成员的平均值排序,然后得到不能用平均函数计算的对象(空集合)。我试着写这样的东西:

        var userPhotos =
            Database.Set<Photo>().Where(p => string.IsNullOrEmpty(userId) || p.ClientProfileId == userId).ToList();
        IOrderedEnumerable<Photo> sortedPhotos;
        switch (orderBy)
        {
            case OrderBy.Raiting:
                sortedPhotos = userPhotos.Where(p => p.Votes != null && p.Votes.Any()).OrderByDescending(item => item.Votes.Average())
                    .ThenByDescending(p => p.TimeOfCreation);
                break;
            default:
                sortedPhotos = userPhotos.OrderByDescending(item => item.TimeOfCreation);
                break;
        }
        return sortedPhotos.Skip((page - 1)*pageSize).Take(pageSize);

我需要包含具有 > 0 votes 的对象,但它无法正常工作。我的错误在哪里?感谢未来的回答!

像这样的东西会起作用:

sortedPhotos =
    userPhotos
    .OrderByDescending(item =>
        (item.Votes == null || !item.Votes.Any())
        ? -1
        : item.Votes.Average());

我们的想法是,对于没有任何选票的照片,我们给它们平均选票 -1(或者我们知道的其他一些特殊值低于实际选票可以给你的)。