QueryFilter有一个SubFields属性和一个AddField方法。
对于SubFields属性是这样描述的。The comma delimited list of field names for the filter。
对于AddField方法是这样描述的。Appends a single field name to the list of sub-fields。
而这两者是有区别的。
从效果上来看,SubFields设置为OID字段,并不能加快查询的速度和要素游标的遍历速度,而会对遍历出的要素的属性进行限定;通过AddField方法添加OID字段,查询速度会明显加快,对遍历出的要素属性也不会进行限定,每个字段都能进行正常获取。通过AddField设置字段,也不会改变SubFields的值。
所以,推测Search方法大概是这么一个过程。AddField方法添加的字段,是用来进行查询的,相当于select [列名] from table;要素游标遍历时,查询到的结果内构成feature,在内构的过程中,用SubFields来进行属性的屏蔽。