第一次写C#的代码,本来想套用一下java的书写逻辑,可是在执行到 "PictureConvertResultVo resultVo = FilePictureDict[fileUUid];"这行代码时,报错System.Collections.Generic.KeyNotFoundException。
public class PictureTransUtil
{
private static Dictionary<String, PictureConvertResultVo> FilePictureDict = new ();
public static PictureConvertResultVo GetFilePictureResult(String fileUUid)
{
PictureConvertResultVo resultVo = FilePictureDict[fileUUid];
return resultVo ;
}
}
当尝试使用不存在的键从集合中检索键或键值对时,会抛出这样的异常。
所以我将代码进行了如下的修改
public class PictureTransUtil
{
private static Dictionary<String, PictureConvertResultVo> FilePictureDict = new ();
public static PictureConvertResultVo GetFilePictureResult(String fileUUid)
{
if (!FilePictureDict.ContainsKey(fileUUid))
{
FilePictureDict.Add(fileUUid,new PictureConvertResultVo());
}
return FilePictureDict[fileUUid];
}
}
在获取之前,查询一下有没有这个key,如果有直接返回就好了。我也不太知道有没有更好的方法,如果大家有更好的解决方案,我非常需要大神们指导一下。