2013-08-19 106 views
-1

在C#中将两个枚举的组合映射到第三个枚举的最佳方式是什么?将两个枚举映射到第三个枚举

基本上我需要一个静态方法的类,它可以接受EnumerationA和EnumerationB,并且在那个方法或类中有一个枚举应该为X,Y组合返回的静态映射。

有没有人有任何好的例子?

+0

我在想如果字典,EnumC>会解决我的问题。有效地,我不确定。 – jreed350z

+0

投票结果不清晰。 – jason

+0

看看我的回答 –

回答

1

你的问题真的不清楚,但这里有一些猜测你想要什么。

public enum A { X, ... } 
public enum B { Y, Z, ... } 
public enum C { Cat, Dog, ... } 

private static readonly Dictionary<Tuple<A, B>, C> lookup = 
    new Dictionary<Tuple<A, B>, C> 
    { 
     { Tuple.Create(A.X, B.Y), C.Cat }, 
     { Tuple.Create(A.X, B.Z), C.Dog }, 
     ...etc... 
    }; 

public static C Lookup(A a, B b) 
{ 
    return lookup[Tuple.Create(a, b)]; 
} 
0

是不是Enumerable.Concat你想要什么?

该文档包含C#示例(以及其他示例)。

+0

抱歉,我的描述需要改进。我正在尝试创建一个映射。说枚举A是动物,B是食物。如果有人通过Animals.Dogs,Foods.Treats,然后从第三个名为BowserTreats的枚举中引用一个值。 – jreed350z