码迷,mamicode.com
首页 > 其他好文 > 详细

逆向删除属性表中的字段

时间:2014-12-12 20:38:55      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:style   ar   color   os   使用   sp   for   on   div   

删除属性表中的字段一定要注意循环的方式。如果是for循环,i< FeatureClass.Fields.FieldCount话,每删除一个字段FieldCount属性返回的字段数量将减少一个,也就是你根本不能完全删除想要删除的字段;如果你先把FeatureClass.Fields.FieldCount赋给一个变量count,for循环中使用i<count,最后导致索引越界;所以,建议使用逆向的方法删除字段。

  1. IFeatureClass pointFS = GPClass.gpUtilities.OpenFeatureClassFromString(tmpPath + @"\Point.shp");
  2. int fieldCount = pointFS.Fields.FieldCount;
  3. IField delField = null;
  4. //逆向删除,以免出错
  5. for (int i = fieldCount - 1; i >= 0; i--)
  6. {
  7. ????delField = pointFS.Fields.get_Field(i);
  8. ????if (delField.Name != "FID" &&
  9. ????????delField.Name != "Shape" &&
  10. ????????delField.Name != "Layer" &&
  11. ????????delField.Name != "Text"
  12. ????????)
  13. ????{
  14. ????????pointFS.DeleteField(delField);
  15. ????????Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss ") + "删除字段" + delField.Name);
  16. ????}
  17. }

需要注意的是,逆向删除时,起始值是Count – 1,因为字段索引是从0开始的,自然,限制条件i>=0.

逆向删除属性表中的字段

标签:style   ar   color   os   使用   sp   for   on   div   

原文地址:http://www.cnblogs.com/liweis/p/4160388.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!