将数组转换为参数列表

时间:2016-10-17 13:20:19

标签: c# parameter-passing

DateTime构造函数需要6个参数:

DateTime date1 = new DateTime(2008, 1, 1, 6, 32, 0);

现在,我有

int[] dr = new int[]{2008, 1, 1, 6, 32, 0};

我如何"转换"将该数组放入参数列表 - 类似于DateTime date1 = new DateTime(dr);

3 个答案:

答案 0 :(得分:3)

你不能这样做,因为构造函数不接受数组;它需要六个单独的参数。但是,手动拆分数组的简单方法应该可行:

var date1 = new DateTime(dr[0], dr[1], dr[2], dr[3], dr[4], dr[5]);

如果必须在代码中的多个位置执行此操作,请使用帮助方法隐藏此代码:

static class DateHelper {
    public DateTime MakeFromComponents(int[] dr) {
        return new DateTime(dr[0], dr[1], dr[2], dr[3], dr[4], dr[5]);
    }
}
...
var date1 = DateHelper.MakeFromComponents(dr);

答案 1 :(得分:1)

有些事情并不像看起来那么难......

DateTime date1 = new DateTime(dr[0], dr[1], dr[2], dr[3], dr[4], dr[5])

只需将数组中的每个项目传递给相应的构造函数参数。

答案 2 :(得分:1)

DateTime date1 = new DateTime(dr[0], dr[1], dr[2], dr[3], dr[4], dr[5]);