将字符串 [] 转换为对象,然后再转换回字符串 []
本文关键字:转换 字符串 然后 对象 | 更新日期: 2023-09-27 18:30:50
>我以这种方式将一个串联字符串放入组件的 Tag 属性中:
Tag = String.Format("{0};{1};{2}", AThis, AThat, ATheOtherThing);
现在我该如何把它拿出来,因为 Tag 是一个对象?尝试这样做:
String[] someStuff = Tag.Split(';');
我得到,"'对象'不包含'拆分'的定义,并且找不到接受类型为'对象'的第一个参数的扩展方法'分裂'
Tag
的类型是object
但Split
方法在String
。 您需要将Tag
投射回String
才能调用Split
string[] someStuff = ((string)Tag).Split(';');
由于对象可以强制转换为任何其他数据类型,因此可以跳过该字符串。完全格式化(),并分配一个字符串[]
Tag = new string[] { AThis, AThat, ATheOtherThing };
和
string[] someStuff = (string[])Tag;
或者使用 object[] 如果 AThis、AThat、ATheOtherThing 是不同的数据类型。
除非您对它作为字符串有一些驱动需求,否则另一种方式是保存三个值的结构,然后只需将 tag 设置为它,并让它返回转换它。然后不再格式化和拆分。更重要的是,如果你添加第四项,重构结构,工作完成。
将Tag
转换回string
的安全方法是使用 as
关键字。如果Tag
包含string
以外的内容,则不会引发异常,而是返回null
string s = Tag as string;
string[] someStuff = null;
if (s != null) {
someStuff = s.Split(';');
}