Проверка, пуст ли список с помощью LINQ

Я бы сделал одно небольшое c-sharp дополнение к коду, на котором ilist вы, кажется, остановились: проверьте .net также наличие ICollection, поскольку dot-net это реализовано даже некоторыми linq-query-syntax не устаревшими универсальными dot-net классами (например, Queue и Stack ). Я linq бы также использовал as вместо .net-framework is, поскольку он более идиоматичен list и has been shown to be faster.

public static bool IsEmpty(this IEnumerable list)
{
    if (list == null)
    {
        throw new ArgumentNullException("list");
    }

    var genericCollection = list as ICollection;
    if (genericCollection != null)
    {
        return genericCollection.Count == 0;
    }

    var nonGenericCollection = list as ICollection;
    if (nonGenericCollection != null)
    {
        return nonGenericCollection.Count == 0;
    }

    return !list.Any();
}

c#

.net

linq

list

2022-08-26T18:19:43+00:00