1

次のような IEnumerable コレクションの拡張があります。

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

XmlNodeList を除く多くのコレクションで機能します。何故ですか?XmlNode は IEnumerable を実装していますか??

助けてください

4

2 に答える 2

1

これは、 ではなくをXmlNodeList実装IEnumerableIEnumerable<T>しているためです。代わりに以下を使用できます。

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

XmlNodeListのみを実装し、実装IEnumerableしないIEnumerable<T>ため、このメソッドを実行するにはこのメソッドが必要です。

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