《IFeatureClass接口》的继续讨论 - [ArcEnine接口]

  IFeatureClass.Select Method

返回包含对象IDs的选择。

[Visual Basic.NET]        Public Function Select(ByVal QueryFilter As IQueryFilter,ByVal selType As esriSelectionType, ByVal selOption As esriSelectonOption, ByVal selectionContainer As IWorkspace) As ISelectionSet

[C#]                             public ISelectionSet Select(IQueryFilter QueryFilter, esriSelectionType selType, esriSelectionOption selOption, IWorkspace selectionContainer);

Select返回一个满足条件的ISelectionSet。如果IQueryFilter中无值,将选择要素类的所有要素。调用IFeatureClassSelect方法同调用ITable中的相应方法效果相同。调用Select时,selectionContainer不需要参数。实参应为NullC#VB.Net)或者NothingVB6)。(注意:提供workspace类型的selectionContainer只读参数将会失败,因为Select会将选择的结果写入workspace

IFeatureClass Select Example

[Visual Basic 6.0]

下面的例子使用属性查询选择要素类的子集。

Dim pFeatcls As IFeatureClass

Dim pFeatLayer As IFeatureLayer

Dim pDoc As IMxDocument Dim pMap As IMap  

Set pDoc=ThisDocument

Set pMap=pDoc.Maps.Item(0)

Set pFeatLayer=pMap.Layer(0)

Set pFeatcls=pFeatLayer.FeatureClass

'创建一个query过滤器,并赋予一个where从句。

Dim pQFilt As IQueryFilter

Set pQFilt=New QueryFilter

pQFilt.WhereClause="Shape_Area>77000"

 

'使用query过滤器选择要素

Dim pSelectionSet As ISelectionSet

'当调用Select时,不需要selectionContainer参数,在VB6中应赋nothing

Set pSelectionSet=pFeatcls.Select(pQFilt,esriSelectionTypeIDSet,esriSelectionOptionNormal,Nothing)

'计算选中的数目

MsgBox pSelectionSet.Count

[C#]

public void IFeatureClass_Select_Example(IFeatureClass featureClass)

{

       //创建查询过滤器并附予一个where从句

       IQueryFilter queryFilter=new QueryFilterClass();

       queryFilter.WhereClause="Shape_Area>77000";

       //使用query过滤器选择要素

       //调用Select时不需要selectionContainer参数。在C#VB.Net中赋给其Null

       ISelectionSet selectionSet=featureClass.Select(queryFilter,esriSelectionType.esriSelectionTypeIDSet,esriSelectionOption.esriSelectionOptionNormal,null);

       //计算选择的要素数目

       Console.WriteLine("{0}features where selected from{1} with where clause {2}",selectionSet.Count,featureClass.AliasName,queryFilter.WhereClause);

}

 

IObjectClass.RelationshipClasses Property

这个对象类参与的关系类。

[Visual Basic.NET]        Public Function get_RelationshipClasses(ByVal Role As esriRelRole) As IEnumRelationshipClass

[C#]                             public IEnumRelationshipClass get_RelationshipClasses(esriRelRole Role);

返回对象类参与的关系类的枚举。

geodatabase的对象类可能参与多个关系类。esriRelRole定义了对象类的角色(origindestination或两者都有),RelationshipClasses属性根据其角色获得关系类的列表。这个属性返回一个IEnumRelationshipClass接口,使用它可以遍历返回的关系类。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值