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>(){ };

シンボルは、入力パラメーターに入力されたシンボルに応じて、動的にコレクションに読み込まれます。それらは、任意の順序および任意の数でロードできます。

たとえば、1 つのセットは「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 に答える