首页 > 代码库 > 逆向删除属性表中的字段
逆向删除属性表中的字段
删除属性表中的字段一定要注意循环的方式。如果是for循环,i< FeatureClass.Fields.FieldCount话,每删除一个字段FieldCount属性返回的字段数量将减少一个,也就是你根本不能完全删除想要删除的字段;如果你先把FeatureClass.Fields.FieldCount赋给一个变量count,for循环中使用i<count,最后导致索引越界;所以,建议使用逆向的方法删除字段。
- IFeatureClass pointFS = GPClass.gpUtilities.OpenFeatureClassFromString(tmpPath + @"\Point.shp");
- int fieldCount = pointFS.Fields.FieldCount;
- IField delField = null;
- //逆向删除,以免出错
- for (int i = fieldCount - 1; i >= 0; i--)
- {
- ????delField = pointFS.Fields.get_Field(i);
- ????if (delField.Name != "FID" &&
- ????????delField.Name != "Shape" &&
- ????????delField.Name != "Layer" &&
- ????????delField.Name != "Text"
- ????????)
- ????{
- ????????pointFS.DeleteField(delField);
- ????????Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss ") + "删除字段" + delField.Name);
- ????}
- }
需要注意的是,逆向删除时,起始值是Count – 1,因为字段索引是从0开始的,自然,限制条件i>=0.
逆向删除属性表中的字段
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。