C#get枚举索引

时间:2012-06-29 03:05:11

标签: sorting

我有这个枚举:

public enum SymbolPair
    { 
        AUDJPY = 0, AUDNZD, AUDUSD, CADJPY, CHFJPY, EURCHF, EURGBP, EURJPY, EURUSD, GBPJPY, GBPUSD, NZDUSD, USDCAD, USDCHF, USDJPY 
    }

我有一组符号字符串

List<string> symbols = new List<string>(){ };

根据输入参数中输入的符号,动态地将符号加载到集合中。它们可以按任何顺序和任何计数加载。

所以例如一组可以加载“EUR / USD”,“CHFJPY”,“GBPUSD”

我需要找到与枚举类型的索引相对应的索引。例如,在这种情况下,我需要索引8,4和10.

有人可以通过linq或代表或任何其他有效的方式来了解如何做到这一点。 感谢

编辑:我需要这些内容,但这不起作用,因为linq确实返回一个值。我怎样才能得到那个单一索引?

    SymbolPair[] enumList = (SymbolPair[])Enum.GetValues(typeof(SymbolPair));

    foreach (string symbol in symbols)
    {           
        int instrumentIndex = from symbolPair in enumList 
                               where symbolPair.ToString() == symbol
                                select (int)symbolPair;
    }

1 个答案:

答案 0 :(得分:0)

好的,我明白了。不管怎样,谢谢。

SymbolPair[] symbolEnumList = (SymbolPair[])Enum.GetValues(typeof(SymbolPair));
int instrumentIndex = (int)symbolEnumList.Single(symbolPair => symbolPair.ToString() == instr.Symbol.ToString());