有沒有一種快速的方法來確定object
變量的內容是否支持IEnumerable?具體來說,我正在使用XPathEvaluate()
從System.Xml.XPath,它可以「An object that can contain a bool, a double, a string, or an IEnumerable.」測試對象是否爲IEnumerable的最快捷方式是什麼?
所以執行後返回:
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)?
我可以閒逛與action.GetType().GetInterface()
,但我認爲我會問,如果有一個更快/更簡單的方法。
注意的事實是'字符串'也實現'IEnumerable'。特別是當你的對象可能是一個字符串(比如'XPathEvaluate'的返回值),並且你真的想知道你是否有一個_collection_時,你可以使用一個擴展的檢查,如if(action is IEnumerable &&!(action is string))' – Alex
@Alex非常真實。 – Jamiec