我有这个枚举:
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;
}
答案 0 :(得分:0)
好的,我明白了。不管怎样,谢谢。
SymbolPair[] symbolEnumList = (SymbolPair[])Enum.GetValues(typeof(SymbolPair));
int instrumentIndex = (int)symbolEnumList.Single(symbolPair => symbolPair.ToString() == instr.Symbol.ToString());