這個問題可能有點長鏡頭不過請往下看:C#動態TValue在字典
我有一組被運行,所有的數據都存儲在dictionarys存儲過程。
例如,getEventTypes存儲在eventTypeResult字典中,getEventCats存儲在dictonary eventCatResult中。
是否有可能運行以下行動態地:
Dictionary<string, eventTypeResult> resultsList = (Dictionary<string, eventTypeResult>)resultsObject;
在哪裏可以是這個樣子:
var resultType = eventTypeResult;
Dictionary<string, resultType > resultsList = (Dictionary<string, resultType >)resultsObject;
感謝您的幫助。
編輯:嘗試2在解釋爲什麼它需要是動態的
目前我的代碼看起來是這樣的:
if (resultType == "eventTypeResult")
{
Dictionary<string, eventTypeResult> resultsList = (Dictionary<string, eventTypeResult>)resultsObject;
}
else if (resultType == "eventDateResult")
{
Dictionary<string, eventDateResult> resultsList = (Dictionary<string, eventDateResult>)resultsObject;
}
else if
else if
else if
ect
ect
難道不只是這樣的:
var resultType = eventTypeResult;
Dictionary<string, resultType > resultsList = (Dictionary<string, resultType >)resultsObject;
什麼你的意思是動態的嗎?它的問題是什麼樣的? –
很抱歉,很難解釋這一點。看我的編輯:)謝謝 – LiveKarma
不幸的是,打字不能這樣做。當你嘗試'var resultType = eventTypeResult;'時,你已經看到了很多東西,因爲這會給你''eventTypeResult''是一個'type',但是被用作'variable''錯誤。最好的解決方案取決於您的最終目標:您是否在尋找可重新打包的其他案例?您是否想要合併代碼,對結果執行相同的操作,並且'eventTypeResult'和'eventDateResult'具有相似的簽名?或者,你是否需要幾乎完全處理每個案例,取決於類型? –