C# 在双精度[,]上添加范围
我有一个返回双精度[,]的函数。我需要循环这个并收集结果。我知道它总是只返回2列,但我不知道函数返回的行数 收集结果的最佳方式是什么 我尝试使用addrange,但在double[,]上似乎不可能这样做 代码:C# 在双精度[,]上添加范围,c#,C#,我有一个返回双精度[,]的函数。我需要循环这个并收集结果。我知道它总是只返回2列,但我不知道函数返回的行数 收集结果的最佳方式是什么 我尝试使用addrange,但在double[,]上似乎不可能这样做 代码: public static double[,] downloadtable(double start, double end, string url) { DateTime t1 = DateTime.FromOADate(start); DateTime t2 = Da
public static double[,] downloadtable(double start, double end, string url)
{
DateTime t1 = DateTime.FromOADate(start);
DateTime t2 = DateTime.FromOADate(end);
var datediff = Convert.ToInt32((t2 - t1).TotalDays) + 1;
var reslist = new List<double[,]>();
for (int i = 0; i < datediff; i++)
{
double[,] temp = somefunction(start+i,url);
reslist.AddRange(temp);
}
}
publicstaticdouble[,]下载表(双起点、双终点、字符串url)
{
DateTime t1=DateTime.FromOADate(开始);
DateTime t2=DateTime.fromoDate(结束);
var datediff=Convert.ToInt32((t2-t1).TotalDays)+1;
var reslist=新列表();
对于(int i=0;i
收集未知长度的结果,然后再次返回双精度[,]的最佳方法是什么
更新-这是一个相当愚蠢的问题,无论如何,这里有一个有效的解决方案。如果有人能想出更好的办法,请告诉我
public static double[,] downloadtable(double start, double end, string url)
{
DateTime t1 = DateTime.FromOADate(start);
DateTime t2 = DateTime.FromOADate(end);
var datediff = Convert.ToInt32((t2 - t1).TotalDays) + 1;
var reslist = new List<double[,]>();
Parallel.For(0, datediff, i =>
{
var temp = downloadone(start + i, url);
reslist.Add(temp);
});
var cnt = reslist.Count;
var cnt2 = new int[cnt];
for (int i = 0; i < cnt; i++)
{
cnt2[i]= reslist[i].GetLength(0);
}
var res = new double[cnt2.Sum(), 2];
var acc = 0;
for (int j = 0; j < cnt; j++)
{
for (int i = 0; i < cnt2[j]; i++)
{
res[acc, 0] = reslist[j][i, 0];
res[acc, 1] = reslist[j][i, 1];
acc++;
}
}
return res;
}
publicstaticdouble[,]下载表(双起点、双终点、字符串url)
{
DateTime t1=DateTime.FromOADate(开始);
DateTime t2=DateTime.fromoDate(结束);
var datediff=Convert.ToInt32((t2-t1).TotalDays)+1;
var reslist=新列表();
Parallel.For(0,datediff,i=>
{
var temp=downloadone(开始+i,url);
reslist.Add(临时);
});
var cnt=reslist.Count;
var cnt2=新的整数[cnt];
对于(int i=0;i
这个AddRange
调用应该做什么?根据所涉及的类型,Add
会起作用。如果它总是有两列,为什么不将List
与T
一起用作自定义类、结构或Tuple
?我以前使用过addrange,但我想那是在我将列表添加到列表时,不知何故我想到了类似列表的double[,],但我猜它不是double[,]
是固定大小的数组。使用.GetLength(0)
和.GetLengh(1)
函数获取行和列。