下面的代码正在循环遍历一个字符串字典和IMyCompanySettings,查找实现IMyCompanyProductSetting的值。显然,尝试强制转换并引发异常是一种非常昂贵的方法。
public static List<IMyCompanyProductSetting> GetProductSettings(ConfigurationManager cfm)
{
List<IMyCompanyProductSetting> ret = new List<IMyCompanyProductSetting>();
foreach(IMyCompanySetting setting in cfm.Values)
{
try
{
IMyCompanyProductSetting prod = (IMyCompanyProductSetting)setting;
ret.Add(prod);
}
catch
{
// Do nothing.
}
}
return ret;
}
有更好的方法吗?