可能是一个非常简单的问题,但是在编写具有映射字典的代码时,我发现处理null等等使我的代码看起来很恶心。有一个更好的方法吗?
int brokerId = 0; // set a default value in case nothing is found
if(myTrade.Counterparty!=null) // dont bother if counterparty is null
if (resolutionMap.Result["Broker"].ContainsKey((myTrade.Counterparty)))
if (resolutionMap.Result["Broker"][myTrade.Counterparty] != null)
primeBrokerId = Convert.ToInt32(resolutionMap.Result["Broker"][myTrade.Counterparty]);
最佳答案
将resolutionMap.Result["Broker"]
的值存储到变量中,而不是多次查找它,例如var broker = resolutionMap.Result["Broker"];
。
也请使用TryGetValue()
代替ContainsKey()
,例如
CounterParty counterParty;
if (broker.TryGetValue(myTrade.Counterparty, out counterParty) && counterParty != null) { ....