次のような IEnumerable コレクションの拡張があります。
public static bool IsNullOrEmpty<T>(this IEnumerable<T> enumerable) {
return enumerable == null || !enumerable.Any();
}
XmlNodeList を除く多くのコレクションで機能します。何故ですか?XmlNode は IEnumerable を実装していますか??
助けてください
次のような IEnumerable コレクションの拡張があります。
public static bool IsNullOrEmpty<T>(this IEnumerable<T> enumerable) {
return enumerable == null || !enumerable.Any();
}
XmlNodeList を除く多くのコレクションで機能します。何故ですか?XmlNode は IEnumerable を実装していますか??
助けてください
これは、 ではなくをXmlNodeList実装IEnumerableIEnumerable<T>しているためです。代わりに以下を使用できます。
public static bool IsNullOrEmpty(this IEnumerable enumerable)
{
return enumerable == null || !enumerable.Cast<object>().Any();
}
XmlNodeListのみを実装し、実装IEnumerableしないIEnumerable<T>ため、このメソッドを実行するにはこのメソッドが必要です。
public static bool IsNullOrEmpty(this IEnumerable enumerable) {
return enumerable == null || !enumerable.Cast<object>().Any();
}