gpt4 book ai didi

c# - 如何检查一个对象是否是列表枚举类型的对象?

转载 作者:太空宇宙 更新时间:2023-11-03 17:17:55 25 4
gpt4 key购买 nike

我有一个对象,它可以是不同枚举类型或非枚举类型(普通类实例)的列表。

验证对象是否是列表很容易:

myobject is IList

现在我可以验证列表元素的类型:

(myobject as IList)[0].GetType().IsEnum

但是如果我还没有元素,如何验证我的列表的元素是否是枚举?

if (myobject is IList)
{
if ((myobject as IList).Count > 0)
{
if ((myobject as IList)[0].GetType().IsEnum)
return true;
}
else
{
// how to check if the list is enum list here ?
}
}

最佳答案

IList 可以包含它想要的任何类型,因此如果您没有任何内容,您将无法检查。如果您确实有一个通用类型开始,您可以使用 Type 的 GetGenericArguments 方法进行检查。 (添加 GetInterface 以防您有实现 IList 但没有 IList 类型的东西,因为它是第一个通用参数)。

 myobject.GetType().GetInterface("System.Collections.Generic.IList").GetGenericArguments()[0].IsEnum

关于c# - 如何检查一个对象是否是列表枚举类型的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12617280/

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