【ArcGIS Pro二次开发】(16):清除字符串字段的空格

在字段串字段的值中,因为复制、输入不正确等原因,经常会带着空格,造成后续计算字段时发生错误,这个工具的目的是消除所有字符串字段中的空格。


一、要实现的功能

右键点击选择的要素图层,点击【清除空格】按钮,清除字符串字段中的空格,如上图所示。


二、功能代码

1、获取当前选择的图层

FeatureLayer initlayer = MapView.Active.GetSelectedLayers().FirstOrDefault() as FeatureLayer;

2、获取所选图层的所有字段,需要异步执行

            var fields = await QueuedTask.Run(() =>
            {
                return initlayer.GetFieldDescriptions();
            });

3、固定套路,打开所选图层的表格,历数所有字段,如果是字符串类型,则将其中的空格去除

           await QueuedTask.Run(() =>
            {
                // 打开表
                using (Table enterpriseTable = initlayer.GetTable())
                {
                    using (RowCursor rowCursor = enterpriseTable.Search(null, false))
                    {
                        TableDefinition tableDefinition = enterpriseTable.GetDefinition();
                        while (rowCursor.MoveNext())
                        {
                            using (Row row = rowCursor.Current)
                            {
                                // 历数所有字段
                                foreach (var field in fields)
                                {
                                    // 如果是字符串类型,则进行下一步
                                    if (field.Type == FieldType.String)
                                    {
                                        var value = row[field.Name];
                                        if (value != null)
                                        {
                                            // 去除空格
                                            row[field.Name] = value.ToString().Replace(" ", "");
                                            row.Store(); // 保存修改
                                        }
                                    }
                                }
                            }
                        }
                    }
                    // 提交编辑
                    Project.Current.SaveEditsAsync();
                }
            });

功能比较简单,代码并不长。

运行后的结果如下:


三、工程文件分享

 最后,放上工程文件的链接:

ClearSpacehttps://pan.baidu.com/s/1JCUkNHFHpSvt5ZeBIwhUlw?pwd=bsx6

PS:可以直接点击...bin\Debug\net6.0-windows\下的.esriAddinX文件直接安装。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

规划GIS会

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值