我有以下代码:
PropertyInfo[] originalProperties = myType.GetProperties();
我想从originalProperties
中排除所有索引器(myVar [“key”]显示为名为“Item”的属性)。
什么是正确的方法?
排除propInfo.Name == "Item"
不可选的所有属性。
答案 0 :(得分:70)
调用PropertyInfo.GetIndexParameters
- 如果返回的数组为空,则它不是索引器。
答案 1 :(得分:0)
另一个选择是使用:
myType.GetProperties().Except(myType.GetDefaultMembers().OfType<PropertyInfo>());
GetDefaultMembers
将以C#返回所有编译器生成的索引器。这样做的好处是,无需思考每个属性就可以找出哪些是索引器。
这可能不是所有允许的.NET框架语言的通用解决方案,但我目前不知道有任何反例。