¿Hay una forma rápida de averiguar si el contenido de una variable object
admite IEnumerable? Específicamente estoy usando XPathEvaluate()
de System.Xml.XPath, que puede volver "An object that can contain a bool, a double, a string, or an IEnumerable."¿Cuál es la forma más rápida de probar si un objeto es IEnumerable?
Así que después de la ejecución:
XDocument content = XDocument.Load("foo.xml");
object action = content.XPathEvaluate("/bar/baz/@quux");
// Do I now call action.ToString(), or foreach(var foo in action)?
que podría hurgar con action.GetType().GetInterface()
, pero pensé que pediría si hay una manera más rápida/más fácil.
Sé consciente del hecho de que 'string 'implementa' IEnumerable' también. Especialmente cuando su objeto puede ser una cadena (como el valor de retorno de 'XPathEvaluate') y realmente quiere saber si tiene una _collection_, puede usar una verificación extendida como' if (la acción es IEnumerable &&! (Action is string)) ' – Alex
@Alex muy cierto. – Jamiec