次のような 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
実装IEnumerable
IEnumerable<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();
}