C# 双[]->;双[,]
好奇的是,有没有更快/更整洁的方法来实现这一点:C# 双[]->;双[,],c#,C#,好奇的是,有没有更快/更整洁的方法来实现这一点: double[] source = ... // some initialisation var target = new double[1, source.Length]; for (var c = 0; c < source.Length; c++) { target[0, c] = source[c]; } double[]源=…//一些初始化 var目标=新的双精度[1,source.Length]; for(var c
double[] source = ... // some initialisation
var target = new double[1, source.Length];
for (var c = 0; c < source.Length; c++)
{
target[0, c] = source[c];
}
double[]源=…//一些初始化
var目标=新的双精度[1,source.Length];
for(var c=0;c
初始化数组,如下所示:
double[,] target = { { /* your list of values */ } };
然后就是一个只有一行的二维数组。如下初始化数组:
double[,] target = { { /* your list of values */ } };
那么您就有了一个只有一行的二维数组。因为您提到这是用于p/Invoke的,所以使用BlockCopy可能是合理的:
double[] source = new double [] {1,2,3,4,7,8,9,0};// some initialisation
double[,] target = new double[1, source.Length];
Buffer.BlockCopy(source, 0, target, 0, source.Length * sizeof(double));
因为您提到这是针对p/Invoke的,所以使用BlockCopy可能是合理的:
double[] source = new double [] {1,2,3,4,7,8,9,0};// some initialisation
double[,] target = new double[1, source.Length];
Buffer.BlockCopy(source, 0, target, 0, source.Length * sizeof(double));
alphas
是否保证为与源相同长度的数组?为什么需要这样做?为什么要创建一个只有一行的二维数组?如果您现在了解了目标在内存中的布局,我想您可以使用,但这肯定是不可移植和脆弱的…很抱歉出现了一个错误(alpha->source)。我必须为一些pinvoke的东西做这个…还不清楚。如果您只需要初始化一个具有某个值的二维数组,那么我的答案就解决了它。但我认为您应该提供更多关于您的确切问题的信息。alphas
是否保证为与源相同长度的数组?为什么需要这样做?为什么要创建一个只有一行的二维数组?如果您现在了解了目标在内存中的布局,我想您可以使用,但这肯定是不可移植和脆弱的…很抱歉出现了一个错误(alpha->source)。我必须为一些pinvoke的东西做这个…还不清楚。如果您只需要初始化一个具有某个值的二维数组,那么我的答案就解决了它。但是我认为你应该提供更多关于你的确切问题的信息。我猜他可能从其他地方得到了第一个数组,所以他不能使用数组初始值设定项。至少我是这样理解这个问题的。我猜他可能从其他地方得到了第一个数组,所以他不能使用数组初始值设定项。至少我是这样理解这个问题的。听起来很有趣。与double[,]target={{{/*您的值列表*/}}相比,它有什么优势;?谢谢。@csetzkorn不是在从double[]
转换到double[,]
你的问题的重点吗?因此,如果他直接初始化double[,]
,它就不会再回答你的问题了。@csetzkorn,如果你能将值硬编码到初始化器中,无论如何,这样做,会更简单。但是,如果不能用编译时常量来表示数组,就不能使用这种方法。@CodesInChaos:我仍然可以注释,不是吗?如果有必要,我会发布另一个问题。我认为你的评论没有多大帮助。听起来很有趣。与double[,]target={{{/*您的值列表*/}}相比,它有什么优势;?谢谢。@csetzkorn不是在从double[]
转换到double[,]
你的问题的重点吗?因此,如果他直接初始化double[,]
,它就不会再回答你的问题了。@csetzkorn,如果你能将值硬编码到初始化器中,无论如何,这样做,会更简单。但是,如果不能用编译时常量来表示数组,就不能使用这种方法。@CodesInChaos:我仍然可以注释,不是吗?如果有必要,我会发布另一个问题。我认为你的评论没有多大帮助。