将两个枚举映射到第三个单枚举

时间:2013-08-19 17:31:46

标签: .net c#-4.0 enumeration

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

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

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

2 个答案:

答案 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)];
}

答案 1 :(得分:0)

不是Enumerable.Concat你想要什么?

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