有没有快速的方法来确定object变量的内容是否支持IEnumerable?具体来说我使用XPathEvaluate()从System.Xml.XPath,它可以返回" 它可以包含一个bool,双,字符串,或一个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)?
Run Code Online (Sandbox Code Playgroud)
我可以随便找一下action.GetType().GetInterface(),但我想我会问是否有更快/更简单的方法.
Jam*_*iec 25
您正在寻找is运营商:
if(action is IEnumerable)
Run Code Online (Sandbox Code Playgroud)
甚至更好,as运营商.
IEnumerable enumerable = (action as IEnumerable);
if(enumerable != null)
{
foreach(var item in enumerable)
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,它string也实现了IEnumerable,因此您可能希望将该检查扩展到if(enumerable != null && !(action is string))
| 归档时间: |
|
| 查看次数: |
6910 次 |
| 最近记录: |