我是一个上传某些项目的foreach,现在发生在某些情况下这个项目是重复的,所以我收到了消息
约束失败
'因为我有重复的密钥,我需要继续foreach的问题,但当然例外,导致退出循环。一个练习的例子:
try
{
foreach(item in list)
{
//code that add item to table
}
}catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
情况:
如果存在约束异常,我怎样才能再次使用foreach?
答案 0 :(得分:3)
如果已添加密钥,请不要将异常用作指示符 - 这非常慢!...以编程方式检查它(例如:Dictionary.ContainsKey(key)
)。
答案 1 :(得分:2)
您应该更改代码并将try-catch
放在for
循环中:
foreach(item in list)
{
try
{
//code that add item to table
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
}
但是通过异常捕获检查重复项并不是一个好主意。
答案 2 :(得分:0)
您可以捕获异常并在此块处理操作中删除重复键, 然后转到终于块。