gpt4 book ai didi

c# - 测试对象是否为 IEnumerable 的最快方法是什么?

转载 作者:可可西里 更新时间:2023-11-01 08:34:20 24 4
gpt4 key购买 nike

有没有一种快速的方法来查明object 变量的内容是否支持 IEnumerable?具体来说,我正在使用 System.Xml.XPath 中的 XPathEvaluate(),它可以返回“An object that can contain a bool, a double, a string, or an 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(),但我想我会问是否有更快/更简单的方法。

最佳答案

您正在寻找 is运算符(operator):

if(action is IEnumerable)

或者更好,as运营商。

IEnumerable enumerable = (action as IEnumerable);
if(enumerable != null)
{
foreach(var item in enumerable)
{
...
}
}

请注意 string 还实现了 IEnumerable,因此您可能希望将该检查扩展到 if(enumerable != null && !(action is string))

关于c# - 测试对象是否为 IEnumerable 的最快方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6735058/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com