object
変数の内容がIEnumerableをサポートしているかどうかを簡単に確認できますか?具体的に私は「An object that can contain a bool, a double, a string, or an IEnumerable.」オブジェクトがIEnumerableであるかどうかをテストする最も簡単な方法は何ですか?
だから、実行した後に返すことができSystem.Xml.XPath、からXPathEvaluate()
を使用しています:
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