如何取消打开一个字符串数组?

时间:2012-02-01 04:50:45

标签: c#

假设我有一个用于对象的字符串数组:

string[] files = Directory.GetFiles(path);
object obj = files;

如何将files再次打包成字符串数组?

3 个答案:

答案 0 :(得分:4)

as运算符就像一个转换器,除了它在转换失败时产生null而不是引发异常。 As operator

string[] someVarArray = obj as string[] 
if(someVarArray!=null)
{
 //do something
}

答案 1 :(得分:4)

您需要的是强制转换,而不是装箱和拆箱。

string[] files2 = (string[])obj;

但请注意,如果您确定对象包含字符串数组(string []),或者您得到 InvalidCastException ,请执行此操作。 如果您不确定,可以使用两种方法测试对象:

string[] files2;
if( o is string[] )
{
    files2 = (string[])o;
    // do whatever with files2
}

string[] files2 = o as string[];
if( files2 != null )
{
    // do whatever with files2
}

答案 2 :(得分:2)

你可以使用as运算符..

if ( obj is string[])
    string[] files = obj as string[];

你可以“投”回来......

if ( obj is string[])
    string[] files = (string[])obj;