这是我的代码
public void DoSomethin(IEnumerable<string> values)
{
Dictionary<string, string> d = GetDictionary();
foreach(var value in values)
{
if(d.Contains(value))
{
//Do something
}else{
// What now ?
}
}
}
值集合来自Web界面,因此可能存在一些无效数据。
我的问题是,如果字典不包含当前值,应该怎么做?
应该抛出异常还是只是跳过当前循环?
此代码为网格生成行..
答案 0 :(得分:2)
如果项目不存在,您应该使用TryGetValue,它将返回null。我会避免这类事情的例外,因为它们可能代价高昂。
答案 1 :(得分:1)
我的问题是,如果字典不包含当前值,应该怎么做?应该抛出异常还是只是跳过当前循环?
您没有向我们提供足够的域名信息来回答这个问题。这真的取决于您的计划的要求/期望。缺少数据是预期的情况吗?您的程序可以处理它并仍然满足自己的要求吗?如果答案是肯定的,那么请妥善处理。如果答案是否定的,那么这是一个致命的例外,你的双手被束缚。
答案 2 :(得分:1)
这取决于,有3种可能性:
答案 3 :(得分:1)
例外情况是与软件通信,而不是与用户通信。鉴于你向我们展示的内容,我无法想到抛出异常的单一情况。
由于您正在生成网格,因此此代码应在单元格中创建一个空单元格或显示“未提供”,具体取决于您希望用户体验的内容。
如果没有值,则无法继续,请向用户显示错误消息。