表格类型参数,常用于GP工具,如:Merge(合并)、Intersect(相交)的inputs(in_features)
一、基本使用
IGpValueTableObject gpValueTableObject = new GpValueTableObjectClass();
gpValueTableObject.SetColumns(1);
object row1 = @"C:\Users\baci\Documents\ArcGIS\Default.gdb\e5";
gpValueTableObject.AddRow(ref row1);
object row2 = @"C:\Users\baci\Documents\ArcGIS\Default.gdb\e3";
gpValueTableObject.AddRow(ref row2);
1. 设置多列
IGpValueTableObject gpValueTableObject = new GpValueTableObjectClass();
gpValueTableObject.SetColumns(2);
//空格作为分隔符
object row1 = @"C:\Users\baci\Documents\ArcGIS\Default.gdb\e5 0";
gpValueTableObject.AddRow(ref row1);
object row2 = @"C:\Users\baci\Documents\ArcGIS\Default.gdb\e3 1";
gpValueTableObject.AddRow(ref row2);
2. 多列时,Com对象作为参数
GpValueTableObjectClass gpValueTableObject = new GpValueTableObjectClass();
gpValueTableObject.SetColumns(2);
IFeatureClass fe = null;
object value00 = fe;
object value01 = "nihao";
gpValueTableObject.AddRow(ref value00);
gpValueTableObject.SetValue(gpValueTableObject.RowCount - 1, 1, ref value01);
3. 参数包含空格
IGpValueTableObject gpValueTableObject = new GpValueTableObjectClass();
gpValueTableObject.SetColumns(1);
//单引号 or 双引号包裹
object row1 = @"`C:\Users\baci\Documents\ArcGIS\Default.gdb\e5 0`";
gpValueTableObject.AddRow(ref row1);
4. ExportToString or LoadFromString
//# 作为占位符,值为null时显示为#
//单个值存在空格 单引号 or 双引号包裹
//列之间 使用空格作为分隔符
//行之间 使用;作为分隔符
//Com对象无法显示,仅显示如GPL0
GpValueTableObjectClass gpValueTableObject = new GpValueTableObjectClass();
gpValueTableObject.SetColumns(2);
object value00 = fe;//Com对象无法显示,仅显示如GPL0 GPL1。。。
object value01 = null;//# 作为占位符,值为null时显示为#
gpValueTableObject.AddRow(ref value00);
gpValueTableObject.SetValue(gpValueTableObject.RowCount - 1, 1, ref value01);
object row2 = "2,1 2,2";
gpValueTableObject.AddRow(ref row2);
object row3 = "'2 1' 2,2";//单个值存在空格 单引号 or 双引号包裹
gpValueTableObject.AddRow(ref row3);
var ss = gpValueTableObject.ExportToString();
//GPL0 #;2,1 2,2;'2 1' 2,2