日期:2014-05-18  浏览次数:20789 次

一个2维数组中的一列想保存一个函数的返回如何写?
一个函数 

private int[] f(int i)
{
  //......
}

我的数组定义

int[,] b;

现在我让b实现类似下面的赋值

p= ... ; //p在程序中会生成,每次不一样...
for(int i=0; i<p;i++)
{
  b[i,]=f(i); //这句话怎么写,让数组b的第一维是i,第二维是一个 int[] 型的返回
}

即如果i=0; f(i)={1,3,5,7,9}
那么b[0,0]=1; b[0,1]=3 ... ...
谢谢!!!!

------解决方案--------------------
C# code

for(int i=0;i<p;i++)
{
    for(int j=0;j<f(i).Length;j++)
    {
        b[i,j]=f(i)[j];
    }
}

------解决方案--------------------
这还不简单。

int p = 10; //假设10个
int[] f = new int[]{1,2,3,4,5,6,7,8,9,0};
int[,] b = new int[2,100];
for (int i = 0; i < p; i++)
{
for(int j= 0;j<2;j++)
{
b[j,i] = f[i];
}
}

测试通过,呵呵。
------解决方案--------------------
二维数字只能是每个行的列数是相等的,建议使用锯齿行数组,int[][],这样每一行的列数可以是不相同的
------解决方案--------------------
我还是不太明白楼主的意思,请楼主写的详细一点,以免耽误解决问题。


如果数组不固定,那建议你用ARRAYLIST,因为不初始化使用在c#里面是要出错的。