110,555
社区成员
发帖
与我相关
我的任务
分享
public static ArrayList solve(ArrayList a, int i)
{
if (a.Count == 0 || i > a.Count - 1)
{
throw new Exception();
}
if (i == a.Count - 1)
{
return a[a.Count - 1] as ArrayList;
}
ArrayList result = new ArrayList();
ArrayList combos = solve(a, i + 1);
foreach (string item in a[i] as ArrayList)
{
foreach (string c in combos)
{
string newCombo = item.ToString() + c.ToString();
result.Add(newCombo);
}
}
return result;
}
private void button2_Click(object sender, EventArgs e)
{
ArrayList b = new ArrayList();
b.Add("b1");
b.Add("b2");
b.Add("b3");
ArrayList c = new ArrayList();
c.Add("c1");
c.Add("c2");
ArrayList d = new ArrayList();
d.Add("d1");
d.Add("d2");
ArrayList a = new ArrayList();
a.Add(b);
a.Add(c);
a.Add(d);
ArrayList cc = solve(a, 0);
foreach (string item in cc)
{
Console.Write(item);
Console.WriteLine();
}
}
class Program
{
public static void Main()
{
ArrayList b = new ArrayList();
b.Add("b1");
b.Add("b2");
b.Add("b3");
ArrayList c = new ArrayList();
c.Add("c1");
c.Add("c2");
ArrayList d = new ArrayList();
d.Add("d1");
d.Add("d2");
ArrayList a = new ArrayList();
a.Add(b);
a.Add(c);
a.Add(d);
ArrayList e = solve(a, 0);
foreach (var item in e)
{
Console.Write(item);
Console.WriteLine();
}
Console.ReadKey();
}
public static ArrayList solve(ArrayList a, int i)
{
if (a.Count == 0 || i > a.Count - 1)
{
throw new Exception();
}
if (i == a.Count - 1)
{
return a[a.Count - 1] as ArrayList;
}
ArrayList result = new ArrayList();
ArrayList combos = solve(a, i + 1);
foreach (var item in a[i] as ArrayList)
{
foreach (var c in combos)
{
string newCombo = item.ToString() + c.ToString();
result.Add(newCombo);
}
}
return result;
}
}
void Main()
{
var list=new ArrayList{
new ArrayList{"b1","b2","b3"},
new ArrayList{"c1","c2","c3"},
new ArrayList{"d1","d2"}
};
var query= from ArrayList l in list
from string l0 in l
from ArrayList l2 in list.ToArray().Where(m=>!m.Equals(l))
from string l22 in l2
from ArrayList l3 in list.ToArray().Where(m=>!m.Equals(l)&&!m.Equals(l2))
from string l33 in l3
select l0+l22+l33;
query.ToList().ForEach(q=>Console.WriteLine(q));
}
/*
b1c1d1
b1c1d2
b1c2d1
b1c2d2
b1c3d1
b1c3d2
b1d1c1
b1d1c2
b1d1c3
b1d2c1
b1d2c2
b1d2c3
b2c1d1
b2c1d2
b2c2d1
b2c2d2
b2c3d1
b2c3d2
b2d1c1
b2d1c2
b2d1c3
b2d2c1
b2d2c2
b2d2c3
b3c1d1
b3c1d2
b3c2d1
b3c2d2
b3c3d1
b3c3d2
b3d1c1
b3d1c2
b3d1c3
b3d2c1
b3d2c2
b3d2c3
c1b1d1
c1b1d2
c1b2d1
c1b2d2
c1b3d1
c1b3d2
c1d1b1
c1d1b2
c1d1b3
c1d2b1
c1d2b2
c1d2b3
c2b1d1
c2b1d2
c2b2d1
c2b2d2
c2b3d1
c2b3d2
c2d1b1
c2d1b2
c2d1b3
c2d2b1
c2d2b2
c2d2b3
c3b1d1
c3b1d2
c3b2d1
c3b2d2
c3b3d1
c3b3d2
c3d1b1
c3d1b2
c3d1b3
c3d2b1
c3d2b2
c3d2b3
d1b1c1
d1b1c2
d1b1c3
d1b2c1
d1b2c2
d1b2c3
d1b3c1
d1b3c2
d1b3c3
d1c1b1
d1c1b2
d1c1b3
d1c2b1
d1c2b2
d1c2b3
d1c3b1
d1c3b2
d1c3b3
d2b1c1
d2b1c2
d2b1c3
d2b2c1
d2b2c2
d2b2c3
d2b3c1
d2b3c2
d2b3c3
d2c1b1
d2c1b2
d2c1b3
d2c2b1
d2c2b2
d2c2b3
d2c3b1
d2c3b2
d2c3b3
*/
void Main()
{
var list=new ArrayList{
new ArrayList{"b1","b2","b3"}
};
var list2=new ArrayList{ new ArrayList{"c1","c2","c3"}};
var list3=new ArrayList{ new ArrayList{"d1","d2"}};
var query= from ArrayList l in list
from string l0 in l
let query0=from ArrayList l1 in list2
from string l11 in l1
from ArrayList l2 in list3
from string l22 in l2
select l11+l22
from q in query0
select l0+q;
query.ToList().ForEach(q=>Console.WriteLine(q));
}
/*
b1c1d1
b1c1d2
b1c2d1
b1c2d2
b1c3d1
b1c3d2
b2c1d1
b2c1d2
b2c2d1
b2c2d2
b2c3d1
b2c3d2
b3c1d1
b3c1d2
b3c2d1
b3c2d2
b3c3d1
b3c3d2
*/
System.Collections.ArrayList arr = new System.Collections.ArrayList(3);
System.Collections.ArrayList a = new System.Collections.ArrayList();
System.Collections.ArrayList b = new System.Collections.ArrayList();
System.Collections.ArrayList c = new System.Collections.ArrayList();
a.Add("a1");
a.Add("a2");
a.Add("a3");
b.Add("b1");
b.Add("b2");
c.Add("c1");
c.Add("c2");
arr.Add(a);
arr.Add(b);
arr.Add(c);
foreach (string oa in a)
{
foreach (string ob in b)
{
foreach (string oc in c)
{
listBox1.Items.Add(oa+ob+oc);
}
}
}