我将连接的字符串放入组件的Tag属性中:
Tag = String.Format("{0};{1};{2}", AThis, AThat, ATheOtherThing);
现在我如何解决这个问题,因为Tag是一个对象?试着这样做:
String[] someStuff = Tag.Split(';');
我知道,“'object'不包含'Split'的定义,也没有扩展方法'Split'可以找到'object'类型的第一个参数
答案 0 :(得分:8)
Tag
的类型为object
,但Split
方法位于String
。您需要将Tag
投回String
才能致电Split
string[] someStuff = ((string)Tag).Split(';');
答案 1 :(得分:0)
由于对象可以转换为任何其他数据类型,因此可以完全跳过string.Format()并指定字符串[]
Tag = new string[] { AThis, AThat, ATheOtherThing };
和
string[] someStuff = (string[])Tag;
或使用object []如果AThis,AThat,ATheOtherThing是不同的数据类型。
答案 2 :(得分:0)
除非你有一些驱动需要它作为一个字符串另一种方式是一个结构,保持你的三个值,然后只是设置标签,并让它回来投射它。然后再没有形成和分裂。更重要的是,如果你添加第四项,重构结构,完成工作。
答案 3 :(得分:0)
将Tag
转换回string
的安全方法是使用as
关键字。如果Tag
包含的内容不是string
,则它不会抛出异常但会返回null
string s = Tag as string;
string[] someStuff = null;
if (s != null) {
someStuff = s.Split(';');
}