短い答えは、代わりにobject
を使用し、あなたの列挙型としてvar
を使用しないことです。
foreach (obj item in Session) {
if (item is CUSIP) {
// CUSIP processing
} else if (item is PricingSecurity) {
//Pricing security processing
} //etc.
}
あなたが見ることができるように、このアプローチの問題は、あなたがそれに任意のカスタムアクションを実行するために、それのタイプのために、各オブジェクトをテストする必要がありますということです。良いアイデアは、セッションに格納する独自のクラスを作成するには、次のようになります。
public class SessionData()
{
List<CUSIP> Cusips {get;set;}
List<PricingSecurity> PricingSecurities {get;set;}
public SessionData()
{
// Initialize the lists so they are never null
this.Cusips = new List<CUSIP>();
this.PricingSecurities = new List<PricingSecurity>();
}
}
は次に、あなただけのリストプロパティのそれぞれをループとは、あなたが必要とするすべてのアクションを実行することができます。