0

我有这个枚举:

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;
    }
4

1 回答 1

0

好,我知道了。无论如何谢谢。

SymbolPair[] symbolEnumList = (SymbolPair[])Enum.GetValues(typeof(SymbolPair));
int instrumentIndex = (int)symbolEnumList.Single(symbolPair => symbolPair.ToString() == instr.Symbol.ToString());
于 2012-06-29T04:25:37.573 回答