当前位置:编程学习 > C#/ASP.NET >>

对个数组配对结果怎么获得?给个思路

打个比方有3个数组{1,2,3}{"a","b","c"}{"A","B","C"}
我想获得这样的结果:
{"1,a,A","1,a,B","1,a,C""2,a,A","2,a,B","2,a,C"……}
就是获得所有3个数组中元素合并的结果集。(要按照格式:"数组1的元素,数组2的元素,数组3的元素"排列,只要这个顺序就好,不需要打乱的情况)
要支持多个数组一起排列,有时候可能不止3个数组。

--------------------编程问答-------------------- 使用递归。
设数组a1 a2 ... an,
定义两个数组联合运算为"+"

a1+a2+a3+...+an=a1+(a2+a3+...+an)=a1+(a2+(a3+(...+(an-1+an))))) --------------------编程问答-------------------- 使用结构数组 --------------------编程问答-------------------- 用循环组成一个二维数组不就可以了吗。 --------------------编程问答-------------------- using System;
using System.Collections;
class arr
{
static  string[] a=new string[] {"1","2","3"};
static string[] b=new string[] {"a","b","c"};
static string[] c=new string[] {"A","B","C"};
static string[] d=new string[a.Length*b.Length*c.Length];
static int m=0;
static void Main()
{
getnewarr(a,b,c);
print(d);
}

 public static  string[] getnewarr(string[] a,string[] b,string[] c)
{
for(int i=0;i<a.Length;i++)
{
for(int j=0;j<b.Length;j++)
{
for(int k=0;k<c.Length;k++)
{
d[m]=a[i]+b[j]+c[k];
m++;
}
}
}
return d;
}
static void print(string[] n)
{
for(int f=0;f<n.Length;f++)
{
Console.WriteLine(n[f]);
}
}
} --------------------编程问答--------------------
引用 4 楼 hangang7403 的回复:
using System;
using System.Collections;
class arr
{
static  string[] a=new string[] {"1","2","3"};
static string[] b=new string[] {"a","b","c"};
static string[] c=new string[] {"A","B","C"};
static string[] d=new string[a.Length*b.Length*c.Length];
static int m=0;
static void Main()
{
getnewarr(a,b,c);
print(d);
}

public static  string[] getnewarr(string[] a,string[] b,string[] c)
{
for(int i=0;i <a.Length;i++)
{
for(int j=0;j <b.Length;j++)
{
for(int k=0;k <c.Length;k++)
{
d[m]=a[i]+b[j]+c[k];
m++;
}
}
}
return d;
}
static void print(string[] n)
{
for(int f=0;f <n.Length;f++)
{
Console.WriteLine(n[f]);
}
}
}

正解,顶一个
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,