如何创建一个可以存储数据类型的集合(比如字符串,日期时间,小数等等)?并使用此集合进行比较:
if (pi.PropertyType.IsIn ([how can check against the collection of type) //where pi is a property info]))
{
}
有什么建议吗?
答案 0 :(得分:3)
List<Type> types = new List<Type> {typeof(string), typeof(int)};
if (types.Contains(pi.PropertyType))
{
//do stuff
}
答案 1 :(得分:0)
希望我能正确理解你的问题。首先,需要更精确地定义集合类型。以下是我将要使用的内容:
收藏品是通用的
集合正在实施其中一个标准集合界面,如IList<T>
,ICollection<T>
或IEnumerable<T>
。在此示例中,集合类型是派生自IEnumerable<T>
。
要发现类型是否是集合,您必须使用GetInterfaces()
获取它实现的接口,只需使用IsGenericType
查看泛型接口,然后获取泛型类型(即从{{1开始)使用IList<String>
:
IList<>
)
GetGenericTypeDefinition()