两个数组:string[] diquurl{维数:为动态的}    [0]: "墨西哥"    [1]: "中东"    [2]: "西餐"    [3]: "其他西餐" 与string[] xiangurl{维数:{维数:为动态的}}    [0]: "0"    [1]: "C1"    [2]: "B1"    [3]: "B5"。现在要通过对他们做循环来取他们的笛卡儿积。。比如我举的例子都是4维的。就是要将他们取积以后成一个16维的数组。(墨西哥0,墨西哥C1,墨西哥B1,墨西哥B5,中东0,中东C1,中东B1,中东B5省列)不知道怎么循环这个数组。请大家给写个算法。谢谢。

解决方案 »

  1.   

    string[] s1 = { "墨西哥", "中东", "西餐", "其他西餐" ,"ertert"};
                string[] s2 = { "0","C1", "B1"  ,"B5" };            string[,] s3 = new string[s1.Length,s2.Length];            for (int i = 0; i < s1.Length; i++)
                    for (int j = 0; j < s2.Length; j++)
                        s3[i, j] = String.Format("{0}{1}", s1[i], s2[j]);
      

  2.   

    定义一个数组 newarray[];
    定义两个整型变量  值为区数组的长度和项数组的长度
    int lonth = 0;
    for (int i =0 ; i< 数组长度;i++)
    {
     for (int j = 0 ;j < 数组长度;j++)
     {
    newarray[lonth]= diquurl[i] + xiangurl[j];
    lonth++;
     }
    }
      

  3.   

    To:sskset(断点) 我最后要得是一维数组。不是其他的。
      

  4.   

    To:yuzhlhua()  编译不能通过啊。说是使用了未赋值的局部变量newarray
      

  5.   

    string[] s1 = { "墨西哥", "中东", "西餐", "其他西餐", "ertert" };
                string[] s2 = { "0", "C1", "B1", "B5" };            string[] s3 = new string[s1.Length * s2.Length];            int index = 0;
                for (int i = 0; i < s1.Length; i++)
                    for (int j = 0; j < s2.Length; j++)
                        s3[index++] = String.Format("{0}{1}",s1[i],s2[j]);
      

  6.   

    TO:yuzhlhua() .现在是能调试了。但执行效率比较忙。如果两个数组有好多维。那程序运的都会没响应。有没有更好的办法了。