C# 根据定义列表统计预定义组合的数量

C# 根据定义列表统计预定义组合的数量,c#,.net,algorithm,C#,.net,Algorithm,这个问题是一个更特殊的例子: 其他用户询问了谁 我有三个不同的列表,每个列表都有来自枚举的预定义元素数(64) enum Values { G0,G1,G2,G3,G4,G5,G6,G7,G8,G9,G10 } 名单如下: List<Values> list1; List<Values> list2; List<Values> list3; 一些组合示例: combinati

这个问题是一个更特殊的例子:

其他用户询问了谁

我有三个不同的列表,每个列表都有来自枚举的预定义元素数(64)

enum Values
            {
                G0,G1,G2,G3,G4,G5,G6,G7,G8,G9,G10
            }
名单如下:

List<Values> list1;
List<Values> list2;
List<Values> list3;
一些组合示例:

combinations.Add(new ValuesCombination(){ Values.G0, Values.G0, Values.G0}); //#comb1
combinations.Add(new ValuesCombination(){ Values.G0, Values.G0});//#comb2
combinations.Add(new ValuesCombination(){ Values.G1, Values.G1});//#comb3
combinations.Add(new ValuesCombination(){ Values.G2, Values.G2});//#comb4
组合长度为2或3

#comb1
通过从
list1
获取
G0
、从
list2
获取
G0
和从
list3
获取
G0
来满足, 但是
#comb2
通过从
list1
获取
G0
、从
list2
获取
G0
以及从
list3
获取
以外的任何
值来满足

我需要什么

根据我的组合列表,我需要计算列表中每个组合的眼病数量,从每个列表中获取一个元素

我不需要每个组合的公式,我需要很长的路,因为我需要我们挑选一支铅笔,这样做

list1[1] list2[1] list3[1] = G1, G1, G1 -> satisfies = true! G1G1G1 combination++
list1[1] list2[1] list3[2] = G1, G1, G2 -> satisfies = true! G1G1 combination++
list1[1] list2[1] list3[3] = G1, G1, G0 -> satisfies = true! G1G1 combination++
...
list1[n] list2[n] list3[n] = GX, GX, Gx -> satisfies??
我需要它尽可能快地运行,因为有了它,我想创建一个应用程序,在我更改每个列表的值时,给我每个组合的概率

我正在使用visual studio 2010和c#4.0

List<ValuesCombination> combinations;
combinations.Add(new ValuesCombination(){ Values.G0, Values.G0, Values.G0}); //#comb1
combinations.Add(new ValuesCombination(){ Values.G0, Values.G0});//#comb2
combinations.Add(new ValuesCombination(){ Values.G1, Values.G1});//#comb3
combinations.Add(new ValuesCombination(){ Values.G2, Values.G2});//#comb4
list1[1] list2[1] list3[1] = G1, G1, G1 -> satisfies = true! G1G1G1 combination++
list1[1] list2[1] list3[2] = G1, G1, G2 -> satisfies = true! G1G1 combination++
list1[1] list2[1] list3[3] = G1, G1, G0 -> satisfies = true! G1G1 combination++
...
list1[n] list2[n] list3[n] = GX, GX, Gx -> satisfies??