1

我有这样的 IEnumerable 集合的扩展:

public static bool IsNullOrEmpty<T>(this IEnumerable<T> enumerable) {
    return enumerable == null || !enumerable.Any(); 
}

它适用于除 XmlNodeList 之外的许多集合。这是为什么?XmlNode 实现 IEnumerable ??

请帮忙

4

2 回答 2

1

这是因为XmlNodeListimplements IEnumerable, notIEnumerable<T>,你可以使用下面的代替:

public static bool IsNullOrEmpty(this IEnumerable enumerable)
{
    return enumerable == null || !enumerable.Cast<object>().Any();
}
于 2012-10-30T10:39:42.570 回答
1

XmlNodeListonly implementsIEnumerable而不是IEnumerable<T>,所以你必须有这个方法才能完成它。

public static bool IsNullOrEmpty(this IEnumerable enumerable) {
    return enumerable == null || !enumerable.Cast<object>().Any();
}
于 2012-10-30T10:39:46.037 回答