2015-10-04 69 views
0

我需要一个具有相同尺寸(保存值为0或1)的数组作为参数,该函数可以是任何等级和任何类型的函数。结果数组将包含0代表失败,1代表成功(我可以使用布尔)来自进程。我怎样才能创建结果数组?C#数组 - 转换/复制

+0

有什么具体要求?你尝试过什么吗?创建一个特定大小的布尔数组可能? –

+0

这似乎是一个疯狂的要求。对于失败,你应该抛出一个异常。 –

+0

@IanNewson:这并不疯狂。有些时候你有一份你想做的事情的清单,而你想报告哪些事情可以完成。例外情况通常是故障情况的最佳解决方案,但并非总是如此。 – StriplingWarrior

回答

5

使用Array.CreateInstance

private static Array CreateArray(Array array) 
{ 
    List<int> dimensions = new List<int>(); 
    for (int i = 0; i < array.Rank; i++) 
    { 
     dimensions.Add(array.GetLength(i)); 
    } 
    return Array.CreateInstance(typeof(bool), dimensions.ToArray()); 
} 
+0

完美!究竟是我在寻找什么(几个小时!)。非常感谢你。 – AAsk

+0

如果这是你的问题的解决方案,那么其他人会知道:] – dlght